Вопрос: У меня есть два контроллера Dog and Cat. Если я сменю имя собаки, тогда цикл цикла digest и Cat также обновят здесь представление из-за метода {{ctrl.getTime()}}. Это большая проблема для больших приложений, которые загружают все контроллеры и не используют ng-if или state. В нашем текущем приложении у нас есть много мест, где мы используем методы внутри шаблонов, а что хуже, мы загружаем и инициализируем все контроллеры приложений и не используем состояния или ng-if, мы используем только ng-show. Я знаю, какое лучшее решение для использования свойств, но мне интересно, может ли он указывать угловое значение $ digest только для области видимости DogCtrl, а не для всех областей приложения?AngularJs разрешает переваривать только текущий объем
HTML
<div ng-app="myApp">
<div ng-controller="DogCtrl as ctrl">
<h3>DogCtrl</h3>
Dog name: <input ng-model="ctrl.name" />{{ctrl.name}}
</div>
<hr />
<div ng-controller="CatCtrl as ctrl">
<h3>CatCtrl</h3>
Cat getTime: {{ctrl.getTime()}} {{ctrl.random}}
</div>
</div>
Javascript
var myApp = angular.module('myApp',[]);
myApp.controller('DogCtrl', DogCtrl);
myApp.controller('CatCtrl', CatCtrl);
function DogCtrl() {
this.name = 'Doggy';
}
function CatCtrl() {
this.getTime = function() {
return new Date().getTime();
}
}
Fiddle: http://jsfiddle.net/nvgofo46/1/
изменен ваш код чуть ниже в скрипте, в основном я чувствую, что область видимости отсутствует http://jsfiddle.net/GomesNayagam/fnqcv86j/2/ – Gomes
могу ли я узнать, почему вы использовали 'ctrl.getTime()' непосредственно на html? вы хотели обновлять его каждый раз? –
@PankajParkar несколько раз удобнее иметь метод like isActive() и логику вычисления места в этом методе вместо того, чтобы иметь дело с собственностью в большом количестве от мест, но для этого случая я просто добавил, что он показывает, какой угловой оценивать представление CatCtrl, которое не было изменено вообще. –