有没有办法在AngularJS上使用通配符捕获范围广播?

例:

$rootScope.$on('*created', function () { // do stuff});

最佳答案

在angular js源代码中,$on定义如下:

$on: function(name, listener) {
   var namedListeners = this.$$listeners[name];
   if (!namedListeners) {
      this.$$listeners[name] = namedListeners = [];
   }
   namedListeners.push(listener);

   return function() {
     namedListeners[indexOf(namedListeners, listener)] = null;
   };
},


由于this.$$listeners是一个关联数组,而javascript中的关联数组不使用正则表达式作为键,因此这暗示了简短的答案是“不行”。

08-28 23:46