如何将两个输入组合成一个值并绑定?

时间:2015-06-22 12:57:55

标签: angularjs angularjs-directive

我使用2个输入来定义年龄。这两个值都应传递给新输入,该输入被绑定到 rule.data 。那可能吗?我是angularjs的新手,可能我有一个缺陷。感谢您的提示

HTML

            <input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/>
            <input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.to"/>
            <input type="text" class="form-control input-sm" ng-model="rule.data" value="between {{age.from}} and {{age.to}}" />

2 个答案:

答案 0 :(得分:4)

我真的不明白为什么要使用<input>格式化值为min和max的文本。

你宁愿这样做,不是吗?

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/>
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/>
<span>between {{age.from}} and {{age.to}}</span>

这对你有用吗?

如果字符串只是用户年龄值的占位符,则应该改为:

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/>
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/>
<input type="text" class="form-control input-sm" ng-model="rule.data" placeholder="between {{age.from}} and {{age.to}}" />

如果您需要将最终字符串输入模型,那么您可以执行以下操作:

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/>
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/>
<input type="text" class="form-control input-sm" ng-model="rule.data" ng-init="rule.data = 'between ' + age.from + ' and ' + age.to" />

(我假设您没有控制器来正确初始化模型。 如果你这样做,那么只需添加这种类型的行:$scope.rule.data = 'between ' + $scope.age.from + ' and ' + $scope.age.to;。它应该做的伎俩。)

答案 1 :(得分:1)

可能因许多解决方案而异,您可以在第三个合并结果中添加自定义过滤器,

     <input type="text" class="form-control input-sm" ng-model="rule.data | customFilter:age.from:age.to" value="between {{age.from}} and {{age.to}}" />

    app.filter('customFilter',function(){
    return function(input ,fromage,toage){
       //your code for between
        return //your calculated age
    }

});