gpt4 book ai didi

javascript - angularjs - 使用 JS 对象设置选择元素选项值

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

我是 AngularJS 的新手,所以请耐心等待。

以下是我尝试在 select 元素中绑定(bind)的 JSON 字符串:

[
{"Name":"Value 1","ID":1},
{"Name":"Value 2","ID":2},
{"Name":"Value 3","ID":3},
{"Name":"Value 4","ID":4}
]

以下是相同的 JS 对象:

function NameValue(nameValue){
var self = this;
self.ID = nameValue.ID;
self.Name= nameValue.Name;
}

我正在解析上面的 JSON 字符串,循环遍历对象并使用上面的 JS 对象将项目推送到数组中,如下所示:

angular.forEach(angular.fromJson(jsonString), function (value, key) {
$scope.Values.push(new NameValue(value));
});

以下是我的 select 与 agularjs 绑定(bind):

<select ng-model="SelectedName" ng-options="x.Name for x in Values">/select>

当我在 select 元素中选择一个值时,整个 NameValue 对象将被设置到 SelectedName 属性中,这就是我的属性试图做。现在,当我尝试动态设置 SelectedName 属性时,该值没有被选中,并且在 select 元素中添加了一个空的 option 元素。我使用 {{SelectedName}} 来检查动态设置时的值以及手动在 select 元素中选择相同值时的值,并且两者都是 {"ID ":2,"Name":"DAO"} 完全相同。我在这里做错了什么?

最佳答案

ng-options的语法是这样的。 link

<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>

假设你有这样的 Controller

app.controller('MainCtrl', function($scope) {
$scope.Values = [
{"Name":"Value 1","ID":1},
{"Name":"Value 2","ID":2},
{"Name":"Value 3","ID":3},
{"Name":"Value 4","ID":4}
];

$scope.SelectedByName='Value 2'; //Default setting drop down by Name property
$scope.SelectedById=4; //Default setting drop down by ID property

});

如果您遵循以下语法,则 name 或 Id 属性将设置为选定的变量。

如果您需要默认选择下拉菜单,那么您需要在 Controller 中设置相应的模型。(如上所述)

HTML:

<body ng-controller="MainCtrl">
By name :
<select ng-options="value.Name as value.Name for value in Values"
ng-model="SelectedByName" ng-change="Print()"></select>
Selected value is : {{SelectedByName}}
<br>
By ID :
<select ng-options="value.ID as value.Name for value in Values"
ng-model="SelectedById" ng-change="Print()"></select>
Selected id is : {{SelectedById}}
</body>

演示插件 Click here

关于javascript - angularjs - 使用 JS 对象设置选择元素选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45299350/

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