我有以下代码
<select ng-disabled="currentQuestion.id" ng-change="loadTopics()" class="detail-subject-select browser-default" ng-model="currentQuestion.SubjectId">
<option disabled="disabled" value="any">Choose a Subject</option>
<option value="1">K8-English</option>
<option value="2">K8-Math</option>
</select>
问题是值 1 和 2 是字符串。我需要它们是数字。当我在页面上选择一个时,一切正常,但我需要在页面加载时使用(currentQuestion.SubjectId,这是一个数字)的值来初始化选择框。
我该如何解决这个问题?
最佳答案
标准 HTML 属性(如“值”)始终表示字符串。不幸的是,你只能使用 ng-options 来实现这一点:
Support for select models with non-string values is available via ngOptions. https://docs.angularjs.org/api/ng/directive/ngValue
它可能看起来有点脏,但有了更多选项,您实际上可以节省一些打字时间:
<select
ng-disabled="currentQuestion.id"
ng-change="loadTopics()"
class="detail-subject-select browser-default"
ng-model="currentQuestion.SubjectId"
ng-options="value as key for (key, value) in {
'K8-English': 1,
'K8-Math': 2
}"
>
<option
disabled="disabled"
value=""
>Choose a Subject</option>
</select>
关于angularjs - ng-model 是数字,选择框选项值是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420030/