Angularjs ng-model - 将字符串转换为数字

时间:2018-05-17 08:30:23

标签: angularjs

我看到一个空白的下拉列表,我怀疑这是因为注入了一个额外的选项。如果我能够删除生成的这个附加选项,我认为,我的问题将得到解决。

自动注入选项:

<option value="? number:1 ?" selected="selected"></option>

我的观点:

<select id="myValue"
    ng-model="myObject.value"
    ng-change="foo()">
    <option value="0"
        localize="MyValue0"
        ng-selected="myObject.value === 0"></option>
    <option value="1"
        localize="MyValue1"
        ng-selected="myObject.value === 1"></option>    
</select>

如何将myObject.value转换为数字?我试过ng-Model =&#34; parseInt(myObject.value)&#34;和ng-model =&#34; myObject.value |数&#34 ;.两者都抛出一个不可分配的元素错误。我正在使用Angularjs 1.6并远离指令,因此创建angular.directive函数可能不是一个选项

1 个答案:

答案 0 :(得分:0)

我相信它是使用ngOptions指令的Angular最佳做法,记录为here

此外,关于第一个选项<option value="? number:1 ?" selected="selected"></option>,我怀疑是因为myObject.value的初始值与任何可能的选项值都不匹配。

试试这个:

<select id="myValue" ng-model="myObject.value" ng-change="foo()"
        ng-options="item for item in options">
    <option value="" disabled selected style="display:none;">Placeholder</option>
</select>

JSFiddle here显示myObject.value是一个数字。

更新了JSFiddle以展示没有占位符的下拉列表。