Angular Js-在指令中从$ rootScope发出

时间:2018-12-26 11:41:40

标签: angularjs angularjs-directive rootscope

我试图打开具有自己的控制器的对话框,并通过事件打开它们。 我现在的问题是,我总是得到

  

由于某些原因,无法读取未定义的$ emit属性   我的$ rootScope未定义。

如何正确注入$rootScope

我正在使用Angular 1.6.7。

.directive("opendialog", [function($rootScope) {
  return {
    link: function(scope, element, attributes) {
      element.bind("click", function(event) {
        var dialogId = $(element).attr("id");
        $rootScope.$emit(dialogId, {
          command: "open"
        });
      });
    }
  }
}]);

1 个答案:

答案 0 :(得分:1)

尝试一下

.directive("opendialog", ["$rootScope", function ($rootScope) {
return {
    link: function (scope, element, attributes) {
        element.bind("click", function (event) {
            var dialogId = $(element).attr("id");
            $rootScope.$emit(dialogId, {command: "open"});
        });
    }
}
}]);