我正在尝试创建一个自定义指令,以扩展现有元素的功能。我想检测某个属性是否存在,如果不存在,则添加它(例如ng-class)。
我尝试在预编译期间实现这一点,但是Angular不会对新属性的添加做出反应。
我 创建了一个plunker,其中包含一个使用ng-hide的简单示例。
<input hide type="submit" value="Submit"/>
app.directive('hide', function() { return { restrict: 'A', compile: function(){ return { pre: function(scope, element, attributes, controller, transcludeFn){ attributes.$set("ng-hide", true); }, post: function(scope, element, attributes, controller, transcludeFn){
} } }, }; });
如果我在html中添加ng-hide =“true”,则提交按钮将被正确隐藏。如果留给指令,则可以看到DOM已正确设置元素,但元素未隐藏:
任何帮助都会受到欢迎!
terminal: true
。在当前情况下可能并非技术上必要,但它可以防止对元素上任何其他指令进行不必要的重新编译。 - Michal Charemza