У меня есть этот модуль маршрутов:
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'});
}]);
Домашний 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 = "";
};
...
}
В addLine
функции $scope.lineText
IS undefined
, это может быть решено путем добавленияng-controller="HomeCtrl"
к partial1.html
, однако это вызывает вызов контроллера дважды. Что мне здесь не хватает?
источник
$parent.$parent...
его для работы. Другими словами, использование$parent
делает предположения о структуре DOM.Вместо использования
this
в соответствии с принятым ответом используйте$parent
вместо этого. Так что по вашемуpartial1.html
вы будете иметь:Если вы хотите узнать больше о области действия
ng-include
или других директивах, проверьте это: https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-includeисточник
$scope.$parent
вместо$parent
неопределенного в соответствии с Angular.$scope.$parent
работает для меня в угловойЯ понял, как обойти эту проблему, не смешивая родительские данные и данные подобласти. Установите элемент
ng-if
вng-include
элементе и установите его в переменную области видимости. Например :В вашем контроллере, когда вы установили все необходимые данные в своей области действия, тогда установите show в
true
. Вng-include
этот момент будет скопирован набор данных в вашей области и установлен в вашей области.Эмпирическое правило заключается в том, чтобы уменьшить объем данных за пределами области действия, иначе у вас возникнет такая ситуация.
Максимум
источник