gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:49:25 24 4
gpt4 key购买 nike

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

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>

Angular
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 保持不变。

最佳答案

您在选择指令时遇到了小错误,请参阅 here

看法:

去做

  <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;
};
}

关于angularjs - 使用 ng-options 和 ng-selected 更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com