Ich habe folgende HauptansichtAngularJS - ng-umfassen ng-Controller und den Umfang nicht verbindlich
<div ng-include="'otions.html'"></div>
und options.html hat folgende
<div ng-controller="OptionsController">Options</div>
<input type="text" ng-model="keyword" value="{{keyword}}" />
<button ng-click="search()">Search</button>
Aber "Schlüsselwort" ist nicht verbindlich zu der Bereich in OptionsController.
app.controller('OptionsController',
['$scope', function($scope) {
$scope.keyword = "all";
$scope.search = function() {
console.log("hello")
};
}]);
, wenn ich auf den Button klicken, sehe ich nicht hello
und das Schlüsselwort all
im Eingabetext wird nicht angezeigt.
Ich habe versucht, das Teil ng-Controller bewegt, wie
<div ng-controller="OptionsController" ng-include="'otions.html'"></div>
folgt Und die Dinge funktionieren wie erwartet.
Ich lese die Antworten in AngularJS - losing scope when using ng-include - und ich denke, mein Problem ist verwandt, aber brauchen nur noch mehr Erklärung zu verstehen, was vor sich geht.
Nicht sicher, ob es ein Tippfehler ist hier aber auch in Ihrer Quelle: die Datei, die Sie einschließen, ist Verweise als 'otions.html' statt' options.html' – thomaux
In Ihrem source Sie geben ng-controller nur für das erste "div" an, so dass Ihre Eingabe und Schaltfläche nicht im Bereich Ihres Controllers liegen. Wahrscheinlich ist es ein Tippfehler. Wenn nicht, könnte das ein Grund sein. – GRaAL
oh nein. wie dumm von mir. – ericbae