我是AngularJS的新手。我有一个非常简单的任务:使用HTML <select>
标记选择带有角度的整数值。
<select ng-model="foo.bar">
<option ng-repeat="option in options" value="{{option}}">{{option}}</option>
</select>
foo.bar
包含整数值。当我运行上面的代码时,第一个生成的选项是:<option value="? number:32 ?"></option>
。我发现所选的值被解释为String。我想要一个整数。
我找到了一些可能的解决方案,但它们要么复杂(如documentation example to implement a convert-to-number
-function),要么它们的options
数组看起来不同(我的只是一个简单的整数数组)。
答案 0 :(得分:4)
而不是option
标记与ng-repeat
结合使用,您应该使用这样的角度ng-options
directive:
<select ng-model="foo.bar" ng-options="option for option in options"></select>
如果options
是一个整数数组,ng-model
也应该包含一个整数。
答案 1 :(得分:0)
选择会给你一个字符串。您必须将该字符串转换为控制器代码中的数字。
foo.bar = parseInt(foo.bar);
您可能需要使用手表来查找foo.bar变量中的更改,然后将它们解析为整数。
查看https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope并搜索$ watch。
答案 2 :(得分:0)
选择下拉列表将始终为您提供字符串值,如果您希望它是一个整数隐藏在控制器中
控制器 -
var numValue = Number(foo.bar);