一尘不染

控制器调用中的AngularJS触发指令

angularjs

我想触发一个包含jQuery指令的AngularJS自定义指令。如何做呢?我已经在指令中阅读了关于发射功能的信息?

想法?


阅读 339

收藏
2020-07-04

共1个答案

一尘不染

您可以使用服务在控制器和指令之间进行通信。

服务可能如下所示:

app.service("directiveService", function() {
    var listeners = [];
    return {
        subscribe: function(callback) {
            listeners.push(callback);
        },
        publish: function(msg) {
            angular.forEach(listeners, function(value, key) {
                value(msg);
            });
        }
    };
});

该指令可以响应服务:

app.directive("jQueryDirective", function(directiveService) {
    directiveService.subscribe(function(msg) {
        // pretend this is jQuery 
        document.getElementById("example")
        .innerHTML = msg;
    });
    return {
        restrict: 'E'        
    };
});

只需将我所做的替换为jQuery操作,您就应该拥有所需的东西。

这是一个有效的小提琴:http :
//jsfiddle.net/jeremylikness/wqXYx/

2020-07-04