我对过滤器感到困惑。
我们可以将过滤器属性用作{{ num | number }}
为什么我们不能这样使用?
<input type="text" name="name" ng-model="num" />
<input type="number" name="name" ng-model="num | number" />
如果我的做法错了。如何将文字类型输入转换为数字?
答案 0 :(得分:0)
你不能在ng-model中使用过滤器,因为ng-model是双向绑定而filter只允许输出所以如果使用过滤器,那么ng-model不能绑定新值,所以你必须在你的控制器中调用filter。文本值更改为ex。类似下面的内容
<input type="text" name="name" ng-model="num" />
<input type="number" name="name" ng-model="numFormatted" />
考虑两个输入的ng-model不同,numFormatted将在带有过滤器的控制器中进行操作
控制器中的
function yourController($scope,$filter)
{
$scope.$watch('num', function(newValue) {
$scope.numFormatted = $filter('number')(newValue); // here we convert changed value of num to number using filter
});
$scope.num = "1";
}
所以现在每当使用输入类型改变num model =&#34; text&#34;它会将其转换为数字并分配给numFormatted,因此输入=&#34; number&#34;将会更新。