我有以下代码
<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这是一个数字)的值初始化选择框。
我怎样才能解决这个问题?
答案 0 :(得分:2)
标准HTML属性(如“value”)始终表示字符串。不幸的是,你只能用ng-options实现这个目的:
可通过以下方式支持具有非字符串值的选定模型 ngOptions。 https://docs.angularjs.org/api/ng/directive/ngValue
看起来有点脏,但有更多选项你实际上节省了一些打字:
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec)
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec)
答案 1 :(得分:1)
一种方法是将您的选项定义为控制器中的对象数组,如下所示:
$ scope.options = [{ 值:1, 名称:'K8-English' },{ 价值:2, 名称:'K8-Math' }];
使用像这样的ng-options在HTML中实现:
<select ng-disabled="currentQuestion.id"
ng-change="loadTopics()"
class="detail-subject-select browser-default"
ng-model="currentQuestion.SubjectId"
ng-options="option.value as option.name for option in options">
<option disabled="disabled" value="any">Choose a Subject</option>
</select>