この質問のバリエーションがすでに何度か尋ねられていることは知っていますが、他のOPに対していくつかの提案された解決策を試しましたが、これを解決できませんでした.いくつかの説明をいただければ幸いです.
基本的な平均 todo リスト アプリ ( http://www.mean.io/ ) を使用しています。単純なコントローラーを実装した後、「エラー: 引数 'nameOfMyController' は関数ではありません。定義されていません。」というエラーが表示されます。
私がいる場所は次のとおりです。
app.js (ボイラープレート)
window.app = angular.module('mean', ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.route', 'mean.system', 'mean.articles' ]);
angular.module('mean.system', []);
angular.module('mean.articles', []);
たとえば、配列に mean.controller を追加するなど、ここで参照されているものを変更しようとしましたが、モジュールが存在しないことが示されるため、明らかに正しい方法ではありません。
これが私のtaskController.jsです(私が従った平均的なチュートリアルは、タスクコントローラーをスタンドアロン関数にしましたが、角度のドキュメントが言う方法でコンストラクターとして宣言しています)
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;
};
});
angular.module('mean.system').controller('taskController', function taskController($scope){ ... } も試しましたが、同じ結果です。
ビューについては今すぐOK:default.jadeにng-appが含まれています
!!! 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
次に、index.jadeに次のものがあります。
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 インサート:
//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')
angularディレクティブが欠落しているとは思わず、コントローラー自体が機能するはずなので、これは基本的なアプリアーキテクチャの問題であり、物事がどのように組み合わされるのか理解していないと思います. どんな助けでも大歓迎です。