输入指令:如何适应原始和脏?

时间:2013-03-08 06:32:52

标签: angularjs input angularjs-directive

我建立了不同的输入数据指令(如日历,colo选择器......)。我想给这些元素赋予相同的行为,即commmon输入elmenets(pristine,dirty)。有没有办法实现(可能通过继承或类似)?如果没有,任何人都知道如何正确编码,所以它很适合吗?

1 个答案:

答案 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的部分。