我根据JSON调用填充值并显示select的名称。在同一个调用中,我从嵌套数组中提取默认帐户值(如果存在)。 所以我有一个持有默认帐户值的范围,并且选择是填充的,但是对于我的生活,我无法弄清楚如何将select属性应用于数组中的对象与默认值对应的值。
基本上,我只想申请"选择"如果数组中存在默认帐户ID,则选择该选项。
此外,我无法更改选择的ng模型,因为它绑定到表单集合功能。
另外,我开放使用ng-repeat vs ng-options,只是无法用重复来解决这个问题,所以我转到了选项范例。
任何帮助都将不胜感激! HTML:
<select class="form-control" id="authQAccount" name="authQAccount" ng-model="authFields.accountID" ng-init ng-options="item as item.name for item in accounts track by item.ID" ng-selected="$scope.defaultAcct" required>
</select>
在我的控制器中:
$http.get('/api/assessment/authorize').success(function(data, status, headers, config) {
$scope.content = data.data;
//Pop the defaults and user options
$scope.languages = [];
angular.forEach(data.data.languages, function(value, key) {
$scope.languages.push(value);
});
$scope.accounts = [];
angular.forEach(data.data.accounts, function(value, key) {
$scope.accounts.push(value);
});
$scope.defaultAcct = data.data.defaultAccount;
我得到的数据:
"data": {
"defaultAccount": "6481004",
"defaultLanguage": "en_us",
"defaultAddonBody": "Test Email for Default",
"accounts": [{
"ID": "6481004",
"name": " ABC Company, Inc. "
}, {
"ID": "6481619",
"name": "EDF Company - Personal "
}
答案 0 :(得分:1)
ng-selected
仅适用于option
元素,而不适用于select
元素本身。我不认为您可以使用ng-options
来实现您想要的效果,如果ng-model
未设置为匹配项,那么{{1}就无法实现选择该项目。
除非您只想要显示,否则您可以添加select
。但是,对于相同的值,您有2个项目,您可以从选项列表中删除默认帐户,也可以保留这两个项目,但其中一个项目的前缀为<option value="" ng-if="defaultAccount">{{defaultAccountName}}</option>
。第二个选项允许用户仍然选择默认选项,而不会在以后失去选择,以防默认更改。这也意味着您的表单已选择默认值而无需更改外部模型。