Ich weiß Variationen dieser Frage wurden schon mehrmals gefragt, aber ich habe mehrere vorgeschlagene Lösungen für andere OPs ausprobiert, nicht war in der Lage, dies zu lösen, und würde eine Klarstellung schätzen.AngularJS/Jade Fehler: Argument 'MyController' ist keine Funktion, undefined (MEAN)
Ich arbeite mit der grundlegenden mittleren Todo-Liste App (http://www.mean.io/). Nach dem Implementieren eines einfachen Controllers bin ich in der "Error: Argument 'NameOfMyController' ist keine Funktion, wurde undefiniert."
Hier ist, wo ich bin an:
app.js (vorformulierten)
window.app = angular.module('mean', ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.route', 'mean.system', 'mean.articles' ]);
angular.module('mean.system', []);
angular.module('mean.articles', []);
Ich habe versucht, zu modifizieren, was hier Bezug genommen ist, wie zum Beispiel das Hinzufügen mean.controller auf das Array aber Das ist eindeutig nicht der richtige Weg, weil es mir sagt, dass das Modul nicht existiert.
hier ist mein taskController.js (ein Mittelwert Tutorial I taskController eine eigenständige Funktion gemacht verfolgt wird, aber ich bin es als Konstrukteur erklärt die Art und Weise docs Winkel sagen zu)
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;
};
});
ich auch versucht angular.module ('mean.system') Controller ('taskController', function taskController ($ scope) {...}, das gleiche Resultat
ok jetzt den Ansichten:.. enthalten ng-App in 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
dann in index.jade ich habe:
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 Einsätze:
//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')
ich glaube nicht ich keine Winkel Richtlinien bin fehlt und die Steuerung selbst funktionieren sollte, so Ich gehe davon aus, dass dies ein grundlegendes Problem der App-Architektur ist, bei dem ich nicht verstehe, wie die Dinge zusammenpassen. Jede Hilfe wäre willkommen.
Danke, ich hatte zwei Probleme. Derjenige, den Sie richtig identifiziert haben, war der erste. Die Verwendung von angular.module ('mean'). Controller ('taskController', die Funktion taskController ($ scope) {...} und das Entfernen meiner zweiten Definition des Moduls löste die Funktion undefined error.Ich hatte auch einen fehlenden Abstand/eine fehlende Übereinstimmung in meinem index.jade (ng-repeat musste innerhalb der ng-controller/ng-init Deklaration sein). Beides hat alles richtig funktioniert. –
Sie haben mich gerade Stunden des Schmerzes gerettet. Vielen Dank. –