Angular Typeahead:动态将值转换为数字

时间:2015-10-19 13:19:36

标签: angularjs angularjs-filter

假设我使用

从服务器获得以下数据
$scope.users= UserResource.query();
//$scope.users= [{id: "1", name: "John"}, {id:"2", name: "Tom"}]

是否可以将typeahead绑定到NUMBER id而不是STRING id? 例如,我希望$ scope.person.id为 1 而不是“1”,所以当我选择一个值时,我不会从角度得到任何抱怨。现在,因为id是string类型,我的数字字段会出现此错误:错误:[ngModel:numfmt]预期1为数字

这样的事情:

<input ng-model="person.id class="form-control" type="number" typeahead="parseInt(user.id) as user.name for user in users | filter:$viewValue" />

以上不起作用,以下内容也是如此:

<input ng-model="person.id class="form-control" type="number" typeahead="user.id as user.name for user in users | filter: number | filter:$viewValue" />

P.S。当然,我不需要对id字段进行任何客户端验证。这只是一个快速的30秒示例来说明问题。

1 个答案:

答案 0 :(得分:0)

您可以为此编写自己的过滤器并使用它:

user.id as user.name for user in (users | stringToId:'user.id')