angularjs - ng-model 是数字,选择框选项值是字符串

标签 angularjs drop-down-menu

我有以下代码

  <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/

相关文章:

html - 如何设置 html "select"元素的选项样式?

javascript - 我无法使用 Java 通过 selenium Web 驱动程序从 Amazon.ca 页面打开 "All"下拉菜单

objective-c - iOS : Disable Push Notifications drop down tray programatically

javascript - AngularJS 中的半正矢公式和地理定位

javascript - Angular : Pressing Enter Submits Empty Form Regardless of Values

css - 带有 css 类的 md-input-container 内的样式标签

asp.net - 如何使用 Javascript 在单击链接时重置 ASP.NET 下拉菜单?没有 JS 框架

javascript - ng-repeat 中的多个表达式 if else

javascript - 从 Parse.com 返回的格式化日期

javascript - 从一个下拉列表中选择一个选项填充其他输入字段