使用ng-options和ng-selected更新模型

击球

我正在尝试使用ng-options从下拉菜单中更新模型,并使用ng-selected选择已经选择的值。这是一个简化的示例(和小提琴)。

的HTML

<div ng-app>
  <h2>Todo</h2>
  <div ng-controller="QuarterController">
    <select name="quarter" ng-model="Quarter.id" ng-options="q.id as q.val for q in Quarters">
      <option ng-selected="Quarter.val===q.val"></option>
    </select>
    <input type="button" name="Submit" value="Submit" ng-click="submit()"/>
    <br/>
    <p>{{answer}}</p>
  </div>
</div>

角度的

function QuarterController($scope) {
    $scope.Quarters = [{val: 'Q1', id: 1}, {val: 'Q2', id:2}, {val:'Q3', id:3}, {val:'Q4', id:4}];
    $scope.Quarter = {val: 'Q2', id: 2, extraField: 'Hello'};

    $scope.submit = function() {
        $scope.answer = "Val: " + $scope.Quarter.val + ", Id: " + $scope.Quarter.id + $scope.Quarter.extraField;
    };
}

因此,这里发生的是下拉选项,即$ scope.Quarters中的“ val”,所选选项的ID保存在$ scope.Quarter.id中。“提交”显示$ scope.Quarter中的ID和VAL。$ scope.Quarter.id会在提交时更新,但不会更新$ scope.Quarter.val。有人知道如何做到这一点吗?

编辑

添加了$ scope.Quarter.extraField可以更好地说明我要解决的问题。我需要id和val进行更新,但我希望extraField保持不变。

除夕

您的select指令中有小错误旅馆,请参见此处

看法:

一切

  <div ng-controller="QuarterController">
    <select name="quarter" ng-model="Quarter" ng-options="q.val for q in Quarters">
        <option value="">{{Quarter.val}}</option>
    </select>
      <input type="button" name="Submit" value="Submit" ng-click="submit()"/>
      <br/>
      <p>{{answer}}</p>

  </div>
</div>

JS:

function QuarterController($scope) {
    $scope.Quarters = [{
        val: 'Q1',
        id: 1
    }, {
        val: 'Q2',
        id: 2
    }, {
        val: 'Q3',
        id: 3
    }, {
        val: 'Q4',
        id: 4
    }];
    $scope.Quarter = {
        val: 'Q2',
        id: 2
    };

    $scope.submit = function () {
        $scope.answer = "Val: " + $scope.Quarter.val + ", Id: " + $scope.Quarter.id;
    };
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用数字作为模型的AngularJS ng-options不选择初始值

ng-model和ng-options不匹配吗?

在Angularjs中使用ng-options时如何更新ng-model?

使用angularjs ng-options和ng-change时发送选项对象

使用ng-if的动态模型-AngularJS表单

离子2和ng模型

当Angular正确更新模型时,为什么不通过在ng-options中的<option>标记中添加'selected'属性来更新DOM?

如何在angular 1中一起使用ng-if和ng-options

ng点击更新模型未重置ng src

ng-selected不更新下拉的angularjs

使用自己的ng模型动态添加输入

使用输入更新ng模型数据

NG模型不更新HTML

在加载ng-options之前更新模型时选择select选项

使用AngularJS和Firebase更新ng-repeat中的值

AngularJS使用ng-options选择不更新父范围中的引用对象属性

AngularJS使用ng-options从JSON模型中设置默认的<select>值

更新使用ng-options生成的select的模型和selected选项

ng-model未在select中更新(ng-options)

在AngularJS中使用ng-options,ng-repeat和ng-selected初始化select

AngularJs:使用ng-value复制数据,但模型不会更新

ng-options和ng-model预选值

ng-options指令未更新

模型未设置Angular ng-options

使用Ng模型进行角形验证

选择的 ng-options 不使用对象作为模型 [Angular 1.5]

使用 angularJS 和 PHP 更新 ng-repeat 的特定值

使用 ng-model 通过 ng-repeat 和 ng-options 在下拉列表中标记所选项目

使用 ng-options 和 'as'('track by' 替代)设置标签