AngularJS使用HTML选择标记

时间:2016-03-31 10:09:10

标签: javascript angularjs

我是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数组看起来不同(我的只是一个简单的整数数组)。

3 个答案:

答案 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);