我使用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或类似的方法
想法?
答案 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 _已被弃用