Смотреть функцию и все ее переменные, чтобы использовать ее в ngIf
Я хочу применить ngIf
директива для элемента DOM, это ngIf
смотреть функцию, и эта функция проверяет значения других переменных. В дальнейшем:
export class Controller{
private x: ObjectClass;
public isDone():boolean{
return this.x.isY() && this.otherFunction();
}
private otherFunction():boolean{
let result:boolean = true;
this.array.forEach((value)=>{
if(!value){
result = false;}
});
return result
}
}
//define the state
.state('app.first-state', {
url: '/first-state,
views: {
'renderView': {
template: require('./states/first-state.html'),
controller: 'Controller as Ctrl',
}
}
})
//in the first-state.html
<div ng-if="Ctrl.isDone()"></div>
x
это объект, который несет методы и переменные.
x.isY()
а также this.otherFunction()
изменить его возвращаемые значения на true
но ngIf не воссоздает элемент DOM. Кажется, что цикл дайджеста не смотрит x
не возражать ни array
объект. Это имеет смысл, поскольку я не использую их непосредственно в элементах DOM. Однако метод isDone()
работает только когда я вхожу в состояние или я выхожу из состояния.
Я сделал следующий обходной путь, но я обеспокоен тем, что будет проблема производительности:
private isDoneVar:boolean = false;
//then make my "own digest cycle"
$interval(() => {
this.isDoneVar = this.isDone();
}, 700);
//and in the div
<div ng-if="Ctrl.isDoneVar"></div>
У меня есть два квестоина:
- Почему
isDone
функция запускается, когда я вхожу и покидаю штат? - Есть ли лучший способ сообщить angular запускать эту функцию при каждом цикле дайджеста? Или смотреть любые изменения для его внутренних переменных (без добавления
$watch
к каждой переменной)