检查自控制器加载后模型是否更改

时间:2016-10-08 23:39:41

标签: javascript angularjs

是否存在一种角度方式来检查模型是否已经改变,因为它是在加载控制器时的初始状态?

我当然可以创建一个变量来存储初始状态并与之进行比较,但是有更优雅的方式吗?

function myController (Service) {
        var vm = this;
        vm.model = Service.getValue(); // Service sets inital value at controller load

        vm.method = function(){
             // do something here only if vm.model changed form inital State
         }

    }

2 个答案:

答案 0 :(得分:1)

您可以在范围

上使用$watch
$scope.$watch('vm.model', function (newVal, oldVal) {
    If (newVal) doSomething();
}, true);

第二个参数的可选布尔值允许您深入监视变量属性。

确保将$ scope注入控制器

答案 1 :(得分:0)

您应该使用 $ watch 来跟踪变量的所有变化。 在此处查看更多详细信息:https://docs.angularjs.org/api/ng/type/$rootScope.Scope