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);