AngularJS でワイルドカードを使用してスコープブロードキャストをキャプチャする方法はありますか?
例:
$rootScope.$on('*created', function () {
// do stuff
});
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 の連想配列は正規表現をキーとして使用しないため、短い答えは「できません」であることを示唆しています。
そのままではありませんが..ヘルパー関数 customOn() を作成し、$on の代わりにそれを使用できます。customOn() は、イベント名に対して正規表現を実行し、任意のイベントをディスパッチできます。