ng 模型不适用于选择

ng-model not working with select

本文关键字:选择 适用于 不适用 模型 ng      更新时间:2023-09-26
这可能是

一个重复的问题,但是在将另一个数组绑定到下拉列表时,我在显示数据中的默认值时遇到了困难。列表已填充,但加载后应显示的选定值未显示。

这是我的示例代码:

.HTML:

<div ng-app="app">
<div ng-controller="myCntrl">
  <select class="form-control right" 
  ng-if="subscription.subscribedAddresses.ChannelType=='EMAIL'" 
  ng-model="subscription.subscribedAddresses.ChannelAddress" 
  ng-options="channel.ChannelAddress for channel in commInfo.emails track by channel.ChannelAddress" required>
  </select>
</div>

.JS:


angular.module('app', [])
.controller('myCntrl', ['$scope', function($scope) {
$scope.commInfo = {
  "emails": [{
    "ChannelAddressId": 5000054652,
    "DeliveryChannel": "EMAIL",
    "ChannelType": null,
    "ChannelAddress": "ya_ajay@net.com"
  }, {
    "ChannelAddressId": 5000075277,
    "DeliveryChannel": "EMAIL",
    "ChannelType": null,
    "ChannelAddress": "yad_ay@ts.com"
  }, {
    "ChannelAddressId": 5000075278,
    "DeliveryChannel": "EMAIL",
    "ChannelType": null,
    "ChannelAddress": "yadav_aaj@gmail.com"
  }, {
    "ChannelAddressId": 5000075279,
    "DeliveryChannel": "EMAIL",
    "ChannelType": "UNKNOWN",
    "ChannelAddress": "test_ay@mail.com"
  }],
  "phones": [{
    "ChannelAddressId": 5000075390,
    "DeliveryChannel": "PHON",
    "ChannelType": "UNKNOWN",
    "ChannelAddress": "4561237895"
  }, {
    "ChannelAddressId": 5000075397,
    "DeliveryChannel": "PHON",
    "ChannelType": "UNKNOWN",
    "ChannelAddress": "7894561236"
  }]
};
$scope.subscription = {"serviceName":"RAM Month","subscribedAddresses":{"ChannelAddress":"yad_ajay@ts.com","ChannelType":"EMAIL"}};
}]);

这是Plunkr:Plunkr: 下拉问题 - Angularjs

代码对我来说

似乎很好,但是您将 subscription.subscribeAddresses.ChannelAddress 初始化为"yad_ajay@ts.com"。我在您的通讯信息中没有看到任何 yad_ajay@ts.com。猜猜这就是问题。

编辑:这是您的弹跳机的工作选择

 <select class="form-control right" 
  ng-if="subscription.subscribedAddresses.DeliveryChannel=='EMAIL'" 
  ng-model="subscription.subscribedAddresses" 
  ng-options="channel as channel.ChannelAddress for channel in commInfo.emails track by channel.ChannelAddressId" 
  required>
  </select>

更改:在 ng-if 中将通道类型更改为交付

更改 ng 选项添加跟踪以帮助角度识别对象的单一性

工作普伦克 :-http://plnkr.co/edit/LSbJ2RVRw9zJleSwP3YT?p=preview

ng-model 不适合 commInfo 列表中的任何模型。这是您的解决方案。

[Jsfiddle](https://jsfiddle.net/6b3ntn73/28/)