Angular.js $ scope。$初始值

时间:2015-01-24 15:27:43

标签: javascript angularjs

我使用angular.js $ scope。$ on来侦听来自我服务的事件(事件在服务数据更改时被触发)。

我使用以下代码段:

$scope.people = contacts.people;
$scope.$on('contacts-changed', () => {
    $scope.people = contacts.people;
});

在事件绑定时,是否有任何方法可以扩展角度以避开第一行并触发$ scope。$ on(' contacts-changed')或类似情况? 我在寻找angular.js装饰器,但不知道如何装饰$ scope来添加$ scope。$ bind或类似的方法

想法?

2 个答案:

答案 0 :(得分:0)

有时候解决方案很简单,但你需要在盒子外面思考。将事件回调块移动到一个函数中,并在事件绑定后加载控制器时运行它。

见:

function handlePeople() {
    $scope.people = contacts.people;
}
$scope.$on('contacts-changed', handlePeople);
handlePeople();

您也可以保留原始代码并手动执行。

答案 1 :(得分:0)

暂时采用以下解决方案:

$rootScope.$bind = (bindName, bindHandler) => {
    $rootScope.$on(bindName, bindHandler);
    bindHandler();
};

但是我想要替换它,所以我可以使用$ scope而不是$ rootScope而不在每个$ scope中定义它... 我可以尝试使用$ scope._ proto _但似乎_ proto _已被弃用