在Angular JS中查看全局对象的属性

时间:2013-11-26 12:54:15

标签: javascript angularjs

假设您在全局范围内有一个对象(我知道它很糟糕。它仅用于演示目的),并且您希望在Angular JS中查看该对象的属性。

var human = {
    name: 'Somebody'
};
var app = angular.module('app', []);
app.controller('watchController', function ($scope) {
    $scope.$watch('human.name', function () {
        alert('foo is changed');
    });
    $scope.doWatch = function () {
        human.name = new Date().toString();
    };
});

和这个HTML:

<div ng-app='app'>
    <div ng-controller='watchController'>
        <input type='button' value='Invoke' ng-click='doWatch()' />
    </div>
</div>

你是怎么做到的?此代码不起作用。请参阅此fiddle

1 个答案:

答案 0 :(得分:4)

$watch接受一个函数作为第一个参数。返回值的更改会触发对侦听器的调用。:

$scope.$watch(function(){
    return human.name;
}, function () {
    console.log('foo is changed');
});

Fiddle