javascript - 当范围更改时,Angular ng-options 值不会更新

标签 javascript angularjs

我在使用 ng-options 创建选择选项下拉列表时遇到问题。

范围结构

vm.filters = {
    perPage: 10, 
    settings: {
      perPage: {
        intervals: [
          {
            label: 'All',
            value: null
          }, {
            label: 10,
            value: 10
          }, {
            label: 25,
            value: 25
          }, {
            label: 50,
            value: 50
          }, {
            label: 100,
            value: 100
          }
        ]
      }
    }
 }

Dom Element( Angular 生成 option 标签)

<select name="selectPerPage" data-ng-model="vm.filters.perPage" data-ng-options="interval.value as interval.label for interval in vm.filters.settings.perPage.intervals">
    <option label="All" value="object:null">All</option>
    <option label="10" value="number:10" selected="selected">10</option>
    <option label="25" value="number:25">25</option>
    <option label="50" value="number:50">50</option>
    <option label="100" value="number:100">100</option>
</select>

当我将间隔数组中第一个对象的 value 属性从 null 更改为实际数字时,option 元素的范围不会更新。为什么?我怎样才能让它更新?这几乎就像范围更新时 ng-model 没有引用一样。

最佳答案

如果您使用ng-options,则不应像在选择中那样对选项进行硬编码。您只能硬一个(通常为空值)。

<select ng-model="vm.filters.perPage" 
        ng-options="interval.value as interval.label for interval in vm.filters.settings.perPage.intervals">
    <option label="All" value="">All</option>
</select>

我不知道 interval.value 是什么类型(数组、对象、字符串?),但它应该保存在 vm.filters.perPage 中(假设vm.filters 存在)。

关于javascript - 当范围更改时,Angular ng-options 值不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43784135/

相关文章:

javascript - 当 Angular 没有返回数据时隐藏和显示元素

javascript - 获取图像 jasmine-Angular 的警告 404

javascript - 更新 Spectrum JS Colorpicker Palette 中的新颜色

javascript - Express.js 包含来自另一个文件的套接字事件?

javascript - 为 angular-materialize 添加依赖项时出错

javascript - Controller 之间的 Angular js 通信

javascript - 基于输入而不是表单禁用 ng-disabled

javascript - 指定 javascript 数组来设置另一个数组的样式

javascript - WebStorm 将 React render() 函数标记为未使用字段

javascript - 从另一个页面链接到特定选项卡