我是angularjs的新手。我正在构建一个应用程序,其中我的主页将有一个帖子列表。我想过将angularjs单独用于双向绑定。我从一个示例页面开始,但在这里遇到了问题。
我的示例页面。我正在为这个div使用ng-app,因为我不希望angularjs与页面的任何其他方面进行交互。
<div ng-app="posts">
<ul class="post_list" ng-controller="PostController">
<li ng-repeat="post in posts">
{{post.title}}
{{post.description}}
</li>
</ul>
</div>
我有一个app.js文件,其中有
var app = angular.module('posts', []);
和带有
的postcontroller.js文件(function(angular, app) {
// Define the Controller as the constructor function.
console.log(app);
console.log(angular);
app.controller("PostController",["$scope"], function($scope) {
$scope.posts = [
{"title":"asdf", "description":"describe"},
{"title":"second one", "description":"second describe"},
];
});
})(angular, app);
当我加载我的主页时。我正在
错误:参数“PostController”不是函数。有字符串 [googlecdn path] angular.min.js:16
我在这里缺少什么。请帮助我,因为我完全困惑。我是angularjs的新手,也是javascript的新手。
答案 0 :(得分:48)
问题在于您声明控制器的方式。你应该这样做如下所示:
app.controller("PostController",["$scope", function($scope) {
$scope.posts = [
{"title":"asdf", "description":"describe"},
{"title":"second one", "description":"second describe"},
];
}]);
请注意,第二个参数是一个数组,其中包含$scope
字符串和函数作为数组的元素。这是用于编写简化安全代码的正确语法。