2013-06-20 36 views
22

Tôi là một newbie đến angularjs. Tôi đang xây dựng một ứng dụng mà trang chủ của tôi sẽ có một danh sách các bài đăng. Tôi nghĩ đến việc sử dụng angularjs cho hai cách ràng buộc cho trang đó một mình. Tôi bắt đầu với một trang mẫu nhưng gặp phải vấn đề ở đây.Angularjs Argument không phải là một hàm có chuỗi

Trang mẫu của tôi. Tôi đang sử dụng ng-app cho div này một mình như tôi không muốn angularjs tương tác với bất kỳ khía cạnh khác của trang.

<div ng-app="posts"> 
    <ul class="post_list" ng-controller="PostController"> 
    <li ng-repeat="post in posts"> 
    {{post.title}} 
    {{post.description}} 
    </li> 
    </ul> 
</div> 

tôi có một tập tin app.js trong đó có

var app = angular.module('posts', []); 

và một tập tin postcontroller.js với

(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); 

Khi tôi tải trang chủ của tôi. Tôi đang nhận được

Error: argument "PostController" is not a function. got string [googlecdn path]angular.min.js:16

Tôi đang thiếu gì ở đây. Xin hãy giúp tôi vì tôi hoàn toàn bối rối. Tôi mới đến angularjs và cũng để javascript.

Trả lời

47

Vấn đề là theo cách bạn khai báo bộ điều khiển của mình. Bạn nên làm điều đó như được hiển thị bên dưới:

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

Hãy lưu ý rằng đối số thứ hai là mảng có cả chuỗi $scope và hàm làm phần tử của mảng. Đây là một cú pháp thích hợp để được sử dụng để viết mã minification-safe.

+0

hoạt động tốt sau những thay đổi này. Bạn có thể chỉ cho tôi một số tài nguyên giải thích tại sao cú pháp này hoạt động với việc thu nhỏ không? Cảm ơn bạn đã giúp đỡ. –

+1

@ R.A.J có xem xét phần "Chú thích phụ thuộc" trong http://docs.angularjs.org/guide/di –

+0

Chức năng khai thác nhỏ và tên đối số nhưng không phải là chuỗi ký tự chuỗi. –

Các vấn đề liên quan