22

我是 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 路径]angular.min.js:16

我在这里想念什么。请帮助我,因为我很困惑。我是 angularjs 和 javascript 的新手。

4

1 回答 1

48

问题在于您声明控制器的方式。您应该如下所示执行此操作:

app.controller("PostController",["$scope", function($scope) {
    $scope.posts = [
      {"title":"asdf", "description":"describe"},
      {"title":"second one", "description":"second describe"},
    ];
  }]);

请注意,第二个参数是一个数组,其中包含一个$scope字符串和一个函数作为数组元素。这是用于编写缩小安全代码的正确语法。

于 2013-06-20T17:11:30.300 回答