Javascript AngularJS-在Jasmine指令单元测试中,如何在(“$destroy”事件上触发element.on?
我必须在一个指令中向元素对象添加一个$destroy事件侦听器,这是我在这个答案中发现的 导致使用范围/元素生成链接函数Javascript AngularJS-在Jasmine指令单元测试中,如何在(“$destroy”事件上触发element.on?,javascript,angularjs,jasmine,Javascript,Angularjs,Jasmine,我必须在一个指令中向元素对象添加一个$destroy事件侦听器,这是我在这个答案中发现的 导致使用范围/元素生成链接函数 controller: "MyCtrl", link: function(scope, element) { element.on("$destroy", function() { scope.func(); }); } 其中func是在MyCtrl中定义的函数 这符合我的要求……但是我在测试(“$destroy”事件上的元素时遇到了
controller: "MyCtrl",
link: function(scope, element) {
element.on("$destroy", function() {
scope.func();
});
}
其中func是在MyCtrl中定义的函数
这符合我的要求……但是我在测试(“$destroy”事件上的元素时遇到了问题
在我的指令测试中注入/模拟之后,我创建了如下元素
this.$compile = $injector.get("$compile");
this.$rootScope = $injector.get("$rootScope");
this.$scope = this.$rootScope.$new();
this.template = "<my-dir></my-dir>";
this.initElement = function() {
this.element = this.$compile(this.template)(this.$scope);
return this.element;
};
我认为我在这个单元测试中面临的问题与我将这个逻辑从ctrl移到directives链接函数的原因相同
关于如何在销毁工作流上测试此元素的任何帮助?我的解决方案是使用此控制器定义的指令使用传入的$rootScope,这会将其破坏到销毁不会启动的位置
相反,我将指令更改为使用它自己的空范围进行初始化,如
controller: "MyCtrl",
scope: {}
是否相关?
controller: "MyCtrl",
scope: {}