如何在TypeScript上使用$ scope。$ watch

时间:2016-07-11 13:57:48

标签: javascript angularjs typescript

我想看一些绑定到我的组件的元素。这个值可能会改变(在另一个组件中),因为他进行了异步调用(promise)。 直到现在在JS中我使用$scope.$watch,当绑定元素改变时,他有一个回调,我可以继续使用元素的值。

JS的例子:

$scope.$watch('myCtrl.myLayout', function (newVal, oldVal) {
                console.log('Layout is:');
                console.log(_this.myLayout);
            });


 angular.module('blocks.ui')
    .component('myForm', {
        templateUrl: 'app/blocks/UI/form.html',
        controller: myForm,
        controllerAs: 'myCtrl',
        bindings: {
            myLayout: '='
        }
    });

问题是如何使用“干净”的typescript语法实现相同的东西(我知道我可以以完全相同的方式注入$ scope并在typescript上实现$scope.$watch。)

感谢。

1 个答案:

答案 0 :(得分:1)

解决方案是使用typescript get&设置

private _myLayout:any;

public get MyLayout() {
   return this._myLayout;
}

public set MyLayout(newItem: any) {
    this._myLayout = newItem;
    console.log('Layout is:');
    console.log(this.MyLayout);
}