Ich habe dieses Modul Routen:
var mainModule = angular.module('lpConnect', []).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/home', {template:'views/home.html', controller:HomeCtrl}).
when('/admin', {template:'views/admin.html', controller:AdminCtrl}).
otherwise({redirectTo:'/connect'});
}]);
Home HTML:
<div ng-include src="views.partial1"></div>
partial1
HTML:
<form ng-submit="addLine()">
<input type="text" ng-model="lineText" size="30" placeholder="Type your message here">
</form>
HomeCtrl
::
function HomeCtrl($scope, $location, $window, $http, Common) {
...
$scope.views = {
partial1:"views/partial1.html"
};
$scope.addLine = function () {
$scope.chat.addLine($scope.lineText);
$scope.lines.push({text:$scope.lineText});
$scope.lineText = "";
};
...
}
In der addLine
Funktion $scope.lineText
ist undefined
, kann dies durch Zugabe gelöst werden , ng-controller="HomeCtrl"
um partial1.html
jedoch bewirkt , dass es die Regler zweimal aufgerufen werden. Was fehlt mir hier?
quelle
$parent.$parent...
, um es zum Laufen zu bringen. Anders ausgedrückt: Verwenden Sie$parent
Annahmen über die DOM-Struktur.Anstelle der Verwendung
this
als die akzeptierte Antwort vermuten lässt, verwenden$parent
statt. Also in deinempartial1.html
hast du:Wenn Sie mehr über den Geltungsbereich
ng-include
oder andere Richtlinien erfahren möchten , lesen Sie diese Informationen unter: https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-includequelle
$scope.$parent
statt$parent
nach Angular nicht definiert ist.$scope.$parent
, was für mich in Winkel 1.3.20Ich habe herausgefunden, wie ich dieses Problem umgehen kann, ohne übergeordnete und untergeordnete Daten zu mischen. Setzen Sie ein
ng-if
für dasng-include
Element und setzen Sie es auf eine Bereichsvariable. Zum Beispiel :Wenn Sie in Ihrem Controller alle Daten festgelegt haben, die Sie in Ihrem Unterbereich benötigen, setzen Sie show auf
true
. Dasng-include
kopiert zu diesem Zeitpunkt den Datensatz in Ihrem Bereich und legt ihn in Ihrem Unterbereich fest.Als Faustregel gilt, dass die Bereichsdaten tiefer reduziert werden, da Sie sonst in dieser Situation sind.
Max
quelle