【发布时间】:2015-03-20 01:21:02
【问题描述】:
我有 2 个控制器通过共享服务进行通信,其中一个控制器监视服务上的值以进行更改。但是,它仅在值第二次更改后才起作用 - 这可能是什么原因?
export interface ISharedService {
value: customObject;
}
class SharedService implements ISharedService {
value: customObject;
}
export class Controller1 {
private sharedService : ISharedService;
constructor(sharedService : ISharedService) {
this.sharedService = sharedService;
}
changeValue(value: customObject) {
this.sharedService.value = value;
}
}
export class Controller2 {
constructor($scope : ng.IScope, sharedService : ISharedService) {
$scope.$watch(() => sharedService.value, (prev, cur) => {
if(prev !== cur) {
alert("WEEEEEE!");
}
});
}
}
当我现在通过调用.changeValue() 函数更改视图中的值时,什么也没有发生。在调用该函数的第二次之后,它突然开始工作。
【问题讨论】:
标签: javascript angularjs angularjs-scope typescript