gpt4 book ai didi

angularjs - 选项在 ng-repeat 时如何初始化选择值?

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

起初我尝试了<select name='size' ng-model='sid' ng-options='y.id as y.title for y in arr'> .但是当提交表单时,发布的变量size不是 ID 472 473 474但是索引 0 1 2 .

然后我试了ng-options='y.title for y in arr track by y.id' .但所选型号sid不是 473但是{"id":473,"title":"bb"}所以我不能通过 ng-init='sid = 473' 将 473 项设置为默认项.

最后,我不得不使用 option ng-repeat='y in arr'如下。但似乎 ng-init 没有用,因为它会在选项重复之前进行初始化。我怎样才能让它发挥作用?

谢谢。

<div ng-controller="Ctrl">
<select ng-model='sid' ng-init='sid = 473'>
<option ng-repeat='y in arr' value='{{ y.id }}'>
{{ y.id+' - '+y.title }}
</option>
</select>
{{ sid }}
<button ng-click='sid=474'>change to 474</button>
</div>
<script>
var app =angular.module('app', []);

function Ctrl($scope){
$scope.arr = [{"id":472,"title":"aa"},{"id":473,"title":"bb"},{"id":474,"title":"cc"}];
}
</script>

http://jsfiddle.net/hcLVE/86/

最佳答案

记得阅读文档:

“不要在同一个表达式中使用 select as 和 track by。它们不是为协同工作而设计的。” https://docs.angularjs.org/api/ng/directive/ngOptions

http://jsfiddle.net/qm7f2kqj/

您所需要的只是修复您的 ng-options:

<div ng-controller="Ctrl">
<select ng-init="sid = 473" ng-model='sid'
ng-options="y.id as ( y.id + ' - ' + y.title) for y in arr">
</select>
<input type="hidden" name="size" value="{{sid}}"/>
{{ sid }}
<button ng-click='sid=474'>change to 474</button>
</div>

关于angularjs - 选项在 ng-repeat 时如何初始化选择值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28971253/

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