2013-07-29 37 views
0

我最近发现了angularJS,并一直在尝试学习它,所以我将简单的待办事项教程复制到yeoman生成器角度应用程序中,这恰好运行正常。但是,当我试图编写自己的版本时,我无法自动更新数据。我在做什么AngularJS错误?

我的HTML:

<div class="hero-unit"> 
<ul> 
    <li ng-repeat="p in phones">{{p.name}} - {{p.snippet}}</li> 
</ul> 
    <a href="#" ng-click="addPhone()">click me</a> 
</div> 

我main.js

'use strict'; 

angular.module( 'ngApp') .controller( “MainCtrl” 功能($范围){

$scope.phones = [ 
    {name: "Nexus S", 
    snippet: "Fast just got faster with Nexus S."}, 
    {name: "Motorola XOOM™ with Wi-Fi", 
    snippet: "The Next, Next Generation tablet."}, 
    {name: "MOTOROLA XOOM™", 
    snippet: "The Next, Next Generation tablet."} 
    ]; 

$scope.addPhone = function() 
{ 
    console.log('clicked'); 
    $scope.phones.push({ 
     name: "iPhone 5", 
     snippet: "Awesome phone man" 
    }); 
}; 
}); 

我还没有修改我的app.js但在这里它只是万一:

'use strict'; 

angular.module('ngApp', []) 
.config(function ($routeProvider) { 
$routeProvider 
    .when('/', { 
    templateUrl: 'views/main.html', 
    controller: 'MainCtrl' 
    }) 
    .otherwise({ 
    redirectTo: '/' 
    }); 
}); 

我在做什么错?在我迷失之前请帮助。我确定这是一个非常简单的东西,我在看。但是,当我点击链接时,该项目不会将其自身添加到列表中。然而,在初始加载时,列表加载得很好。

+0

我忘了提的是, “点击”确实被记录到控制台。 – user2554434

回答

2

您错过了参数列表angular.module()函数的第二个参数,只需将其从

angular.module('ngApp') 

改变

angular.module('ngApp', []) 

Demo on jsFiddle

+0

谢谢,但它仍然无法在我的电脑上工作。我正在使用grunt,并且来自angularjs站点的示例工作得很好......我会疯了吗? – user2554434

+0

@ user2554434我更新了演示。尝试使用相同的角度模块实例来注册控制器和路由。 – zsong

+0

谢谢你的帮助。唯一能解决问题的方法是从a属性中删除href =“#”。是否有任何特定的原因妨碍了它的工作?我想学习未来以避免再次发生这种错误。谢谢你。 – user2554434