我的指令“addOnce”需要检查它是否具有“restrict”属性,如果是,则将某些其他指令附加到输入框中,该输入框是其中一个子子项。
我已经能够布局框架来完成这项工作。但是我仍然无法动态地将其他指令附加到输入框。
Plnkr:http://plnkr.co/edit/jYiTtTQ0uPuH40zcMcer
app.directive('addOnce', ['$timeout', function($timeout){
return {
restrict: 'E',
link: function(scope, el, attrs){
if(attrs.restrict){
var input = el.find('input');
$timeout(function(){
input.val('testing');
}, 50)
// now attach directive restrict-symbols to the input box
// as a result the html would look like
//<input type="text" class="aClass" ng-model="aModel" restrict-symbols>
}
}
};
}]);
任何线索都将受到赞赏。
答案 0 :(得分:0)
嵌套指令的必要部分是:
input.attr('restrict-symbols', '');
$compiled = $compile(input)(scope);
请查看修改后的plunkr以获取完整示例:http://plnkr.co/edit/HCTGj1ivp48cUXBXpn1Q?p=preview
我所做的只是将所需属性添加到输入字段,然后编译元素,以便执行嵌套指令。第二个指令的代码不是很复杂,但足以证明它的工作原理