Tôi biết các biến thể của câu hỏi này đã được hỏi nhiều lần, nhưng tôi đã thử một số giải pháp được đề xuất cho các OP khác, có thể giải quyết vấn đề này và sẽ đánh giá cao một số giải thích rõ ràng.AngularJS/Jade Lỗi: Argument 'MyController' không phải là một hàm, không xác định (MEAN)
Tôi đang làm việc với ứng dụng danh sách việc cần làm trung bình cơ bản (http://www.mean.io/). Sau khi thực hiện một bộ điều khiển đơn giản tôi đang chạy vào "Error: Argument" nameOfMyController 'không phải là một chức năng, có undefined. "
Đây là nơi tôi tại địa chỉ:
app.js (soạn sẵn)
window.app = angular.module('mean', ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.route', 'mean.system', 'mean.articles' ]);
angular.module('mean.system', []);
angular.module('mean.articles', []);
tôi đã cố gắng thay đổi những gì đang tham chiếu ở đây, như thế nào, ví dụ, thêm mean.controller để mảng nhưng rõ ràng là không đúng cách để làm điều đó bởi vì nó cho tôi biết module không tồn tại.
đây là taskController.js của tôi (một hướng dẫn có nghĩa là tôi theo sau làm taskController một chức năng độc lập nhưng tôi tuyên bố nó như là một nhà xây dựng cách docs góc nói đến)
var mean = angular.module('mean',[]);
mean.controller('taskController', function taskController($scope){
$scope.todos = [];
$scope.doneFilter = { done : true };
$scope.notDoneFilter = { done : false };
$scope.setTodos = function(todos){
$scope.todos = todos;
};
});
Tôi cũng đã cố gắng angular.module ('mean.system') điều khiển ('taskController', chức năng taskController ($ phạm vi) {...}, kết quả tương tự
ok ngay bây giờ cho các quan điểm:.. bao gồm ng-ứng dụng trong default.jade
!!! 5
html(ng-app='mean', lang='en', xmlns='http://www.w3.org/1999/xhtml', xmlns:fb='https://www.facebook.com/2008/fbml', itemscope='itemscope', itemtype='http://schema.org/Product')
include ../includes/head
body
...
include ../includes/foot
sau đó trong index.jade tôi có:
extends layouts/default
block head
script(type='text/javascript', src='/js/controllers/taskController.js')
block content
section(data-ng-view)
div.container(ng-controller="taskController", ng-init="setTodos(#{JSON.stringify(todos)})")
...
div.row(ng-repeat="todo in todos | filter:notDoneFilter")
label.checkbox
input(type="checkbox", ng-model="todo.done")
| {{ todo.description }}
span.datestring
i {{ todo.due | date: 'MMM d, yyyy' }}
...
div.row(ng-repeat="todo in todos | filter:doneFilter")
label.checkbox
input(type="checkbox", checked="true")
del {{ todo.description }}
span.datestring
i {{ todo.due | date: 'MMM d, yyyy' }}
foot.jade chèn:
//AngularJS
script(type='text/javascript', src='/lib/angular/angular.js')
script(type='text/javascript', src='/lib/angular-cookies/angular-cookies.js')
script(type='text/javascript', src='/lib/angular-resource/angular-resource.js')
Tôi không nghĩ Tôi đang thiếu bất kỳ chỉ thị góc và bộ điều khiển bản thân nên làm việc, vì vậy Tôi giả định đây là một vấn đề kiến trúc ứng dụng cơ bản mà tôi không hiểu cách mọi thứ phù hợp với nhau. Bất kỳ trợ giúp sẽ được đánh giá cao.
Cảm ơn bạn, tôi đã gặp hai vấn đề. Cái bạn đã xác định chính xác là cái đầu tiên. Sử dụng angular.module ('mean'). Controller ('taskController', function taskController ($ scope) {...} và loại bỏ định nghĩa thứ hai của tôi về module đã giải quyết lỗi chức năng undefined.Tôi cũng đã có một khoảng cách/nhận dạng bị thiếu trong index.jade của tôi (ng-repeat cần thiết trong vòng khai báo ng-controller/ng-init). Sửa cả hai đều có mọi thứ hoạt động chính xác. –
Bạn vừa tiết kiệm cho tôi số giờ đau. Cám ơn rất nhiều. –