我有一个指令包装一个文本输入。当模板放在一起时,输入有由ngRequired和ngDisabled添加的类。在best链接时,我有一些额外的类要添加到输入中,但我不知道做这件事的最佳方法是什么。
我使用了一种方法,但它覆盖了angularjs的类。
template: '<input class="{{classes}}" ng-required="true"></input>'
还有第二种方法,它简单地使用element.addClass添加类,但它没有数据绑定。
link: function(scope, element) { element.addClass(getGeneratedClasses()) }
Ng类在这里没有帮助,因为我希望有一个控制器使用指令来控制这些类。
是否有一种从链接函数中绑定数据类的好方法?
发布于 2014-06-10 14:37:29
使用第二种方法,您可以在(post)链接函数中的函数上设置一个$watch:
link: function(scope, element) {
scope.$watch(function() {
return {
hasRequiredClass: element.hasClass('required'),
hadDisabledClass: element.hasClass('disabled')
};
}, function(newVal, oldVal) {
if (newVal.hasRequiredClass) {
//add additional classes
}
if (newVal.hasDisabledClass) {
// add additional classes
}
});
});
https://stackoverflow.com/questions/24151376
复制相似问题