将输入数与AngularJS中的文本绑定

时间:2015-03-31 16:06:27

标签: javascript html angularjs

我需要绑定类型'数字'的输入。使用不同的字符串模型。我设法使用如下指令绑定它们:

app.directive('input', function () {
    return {
        restrict: 'E',
        require: 'ngModel',
        priority:999999,
        link: function (scope, elem, attrs, ctrl) {
            //Check del tipo input
            if (attrs.type.toLowerCase() !== 'number') 
            {
                return;
            } 
            //Paso a numero el valor a colocar
            ctrl.$formatters.push(function (value) 
            {
                return value ? parseFloat(value) : null;
            });
        }
    };
});

HTML就像这样:

<input class="form-control" type="number" ng-model="scopeValue" />   

到此为止,绑定没有问题。但是,当我写一个ng-repeat和ng-switch组合时,这个指令没有被执行。示例代码:

<div ng-repeat="attribute in attributes" ng-switch on="attribute.type">
  <div class="input-group">
    <span class="input-group-addon" id="basic-addon2">{{attribute.label}}</span>
    <input class="form-control" ng-switch-when="text" ng-model="attribute.value" type="text" name="{{attribute.label}}" value="{{attribute.value}}">                                   
    <input class="form-control" ng-switch-when="number" ng-model="attribute.value" type="number" name="{{attribute.label}}" value="{{attribute.value}}">
  </div>
</div>

这里永远不会抛出指令链接代码,并且永远不会完成带数字的输入。据我所知,该指令检查所有输入并具有ngModel依赖性。为什么它从未被执行过?

0 个答案:

没有答案