Angular + Typescript:$ scope的最终结果是什么?

时间:2015-01-20 16:52:00

标签: javascript angularjs angularjs-scope typescript view-scope

我目前正在尝试将trNgGrid集成到我的角度应用程序中,遗憾的是,它无法将控制器中的函数绑定到行上的ng-click,因为它构建了表体本身。相反,文档告诉我,$watch上的数组必须$scope才能进行更改。我得到了$scope的概念,但是当使用typescript和ControllerAs语法时,很少需要使用它。所以我的问题是:$scope上有什么结果?我怎么看(正确的方式)?

考虑以下控制器:

export class DummyViewModel {

    private iAmPrivate : number;
    public iAmPublic: number;

    constructor($scope : any) {
        $scope.amIOnTheScope = "??";
    }
}

所以... iAmPrivate上是$scope?那么iAmPublic呢?我可以使用iAmPublic观看$scope.$watch("iAmPublic",...吗?如果我使用vm.iAmPublic从视图访问控制器的公共成员,我在哪里完全绑定到? $scope或秘密控制人纳尼亚?

1 个答案:

答案 0 :(得分:0)

  

$ scope的结果是什么?我如何看待它(正确的方式)?

如果您有DummyViewModel as vm,那么$scope.vm就是DummyViewModel的实例

要观察范围内的某些内容,您只需执行以下操作:

$scope.$watch(()=>this.someMember,(val)=>{
     // Use new val
});

当然,深度观察有第三个boolean参数,您可以自己探索$scope.$watchCollection