我建立了不同的输入数据指令(如日历,colo选择器......)。我想给这些元素赋予相同的行为,即commmon输入elmenets(pristine,dirty)。有没有办法实现(可能通过继承或类似)?如果没有,任何人都知道如何正确编码,所以它很适合吗?
答案 0 :(得分:3)
如果您的指令在内部不使用ng-model
,则必须自己创建。因此,如果您的指令只包含一个可编辑且具有一些额外功能的文本字段,那么仍然使用ng-model
是个好主意,因为它会为您提供额外的功能。所以像这样:
HTML:
<my-input my-model="model1">
和JS:
myModule.directive('myInput', function() {
return {
replace: true,
restrict: 'E',
scope: {
model: '=myModel'
},
template: '<div><input type="text" ng-model="model"</div>',
link: function($scope, elem, attrs) {
// Add extra features to the input
}
};
});
这样,您的指令会自动使用ng-model
获取原始/脏行为。如果这不适合您,我建议您查看NgModelController的源代码,特别是关于pristine / dirty的部分。