我的代码有问题,通过播放一点我找到了解决方案,但我不知道它为什么有效。事情就是这样:
// recompile all audio buttons
angular.element(textAsDom).find('sound-button').each(function(key, element) {
$compile(angular.element(element))(scope);
});
我有一个原始html作为参数,在其中我正在寻找名为“soundButton”的指令,我编译它们以便使用它们附加的范围函数和属性。
然而,我的第一个解决方案是这样做:
// recompile all audio buttons
angular.element(textAsDom).find('sound-button').each(function(key, element) {
var compiledSound = $compile(angular.element(element))(scope);
angular.element(element).replaceWith(compiledSound);
});
所以我首先编译soundButton并将其链接到范围,然后我得到一个绑定元素作为回报。然后我用绑定元素替换原始元素。但是,所有角度脏检查和事件处理程序都不再起作用。
至于现在我的问题已经解决了,但是为了理解为什么它不起作用,我问你们这些人是否可以对这些深奥的东西有所了解。
由于
答案 0 :(得分:0)
听起来你接近这个有点奇怪。
为什么不将指令连接到声音按钮?没必要.find。
.directive("sound-button", function(){
return {
class: 'C',
replace: true,
....
}
});