Javascript 将指令属性添加到指令元素
我有一个指示元素:Javascript 将指令属性添加到指令元素,javascript,angularjs,angularjs-directive,angularjs-scope,angular-directive,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angular Directive,我有一个指示元素: return { restrict: 'E', replace: true, transclude: true, template: '<ul>' + '<li {{myNewAttrDirective}}>Home</li>' + '<li {{myNewAttrDire
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<ul>' +
'<li {{myNewAttrDirective}}>Home</li>' +
'<li {{myNewAttrDirective}}>Products</li>' +
'<li {{myNewAttrDirective}}>Cart</li>' +
'<li {{myNewAttrDirective}}>Contact Us</li>' +
'</ul>',
scope: {
_showMore : '=showMore'
},
link: function(scope, element, attrs) {
if (scope._showMore === true) {
scope.myNewAttrDirective = 'myAnimationDirective'
}
}
};
在HTML中呈现,但单击事件不响应。(但是,如果我将它们添加到原始指令中,它们确实有效)。解决了添加问题
$compile(element)(scope);
解决添加
$compile(element)(scope);
更优雅的解决方案是在指令编译阶段进行绑定:编译函数允许指令在编译和链接DOM之前对其进行操作,从而允许它添加/删除/更改指令,以及添加/删除/更改其他DOM元素。如果您想让我用一些代码来展示这个示例,请告诉我。@CosminAbabei-您的解决方案听起来更好,特别是从性能角度来看。showcase会很有用。更优雅的解决方案是在指令编译阶段进行绑定:编译函数允许指令在编译和链接DOM之前对其进行操作,从而允许它添加/删除/更改指令,以及添加/删除/更改其他DOM元素。如果您想让我用一些代码来展示这个示例,请告诉我。@CosminAbabei-您的解决方案听起来更好,特别是从性能角度来看。展示会很有用。
$compile(element)(scope);