Bir öğeye eklenen alanı bulmak ve üzerinde bir işlevi çağırmak için Açısal işlevleri kullanabilirsiniz. Ben gerçekten bunu soyutlamak ve ng-app
kökünü bulmak ve uygulama içine bir olay yayınlamak için tercih ederim, böylece dış kod, yayınladığınız olay haricinde, iç kodun özelliklerini bilmiyor. Eğer 'etmezsen
$rootScope.$on('doSomething', function(parameters) {
// handle the external event.
});
:
angular.$externalBroadcast = function (selector, event, message) {
var scope = angular.element(selector).scope();
scope.$apply(function() {
scope.$broadcast(event, message);
});
};
Sonra herhangi koddan, gibi bir şey çağırabilirsiniz:
angular.$externalBroadcast('#app-container', 'doSomething', parameters);
Ve uygulamanın içinden, böyle bir şey yapacağını Bu yaklaşımı beğenmediğinizde, yalnızca şu kapsamı edinin:
Ve onunla bir şey yap. Sadece scope.$apply
'u aradığınızdan emin olun, aksi takdirde sindirim döngüsü gerçekleşmeyecektir.
Yukarıdaki durumda bir fabrika veya yönerge kapsamı elde etmek için bir yol var mı? –
Nvm. Aldığınız kapsam rootScope. Hizmeti root kapsamına ekledim ve ona nasıl ihtiyacım olduğunu söyleyebilirdim. Bunun için teşekkürler! –