0

我在其他帖子中读过它,但无法弄清楚。我有数组:

$scope.adresses = [
  { id:"5", libelle:"DARGAUD EDITEUR", adresse:"Rue Moussorgski 15/27 75018 Paris France"}, 
  { id:"6", libelle:"CPE", adresse:"Rue de l'évangile 73 75018 Paris France"}, 
  { id:"7", libelle:"SIPACK", adresse:"Z.I. Gellainville Rue Joseph Cugnot 7 28630 Chartres France"}, 
  { id:"8", libelle:"URBAN COMICS", adresse:"Rue Moussorgski 15/27 75018 PARIS France"}
];

我想渲染这个:

<select name="livAdresse">
  <option value="5" title="Rue Moussorgski 15/27 75018 Paris France">DARGAUD EDITEUR</option>
  <option value="6" title="Rue de l'évangile 73 75018 Paris France" selected="selected">CPE</option>
  <option value="7" title="Z.I. Gellainville Rue Joseph Cugnot 7 28630 Chartres France">SIPACK</option>
  <option value="8" title="Rue Moussorgski 15/27 75018 PARIS France">URBAN COMICS</option>
</select>

我试过这个:

<select name="livAdresse" ng-model="livraison.toAdresse">
  <option ng-repeat="adr in adresses" ng-selected="adr.id==livraison.toAdresse" value="{{adr.id}}" title="{{adr.adresse}}">{{adr.libelle}}</option>
</select>

浏览器不关心所选选项:-( (firefox 和 chrome)

4

3 回答 3

2

试试这个选项:

HTML

 <select>
        <option ng-repeat="v in adresses" value="{{v.id}}" title="{{v.adresse}}"
        ng-selected="adresses.indexOf(v) == 1">{{v.libelle}}</option>
    </select>

JS

$scope.adresses = [{
        id: "5",
        libelle: "DARGAUD EDITEUR",
        adresse: "Rue Moussorgski 15/27 75018 Paris France"
    }, {
        id: "6",
        libelle: "CPE",
        adresse: "Rue de l'évangile 73 75018 Paris France"
    }, {
        id: "7",
        libelle: "SIPACK",
        adresse: "Z.I. Gellainville Rue Joseph Cugnot 7 28630 Chartres France"
    }, {
        id: "8",
        libelle: "URBAN COMICS",
        adresse: "Rue Moussorgski 15/27 75018 PARIS France"
    }];

演示Fiddle

于 2013-11-13T10:38:32.950 回答
1

select有一个特殊的重复叫ng-options. 这就是您需要使用的,而不是ng-repeat.

<select name="livAdresse" ng-options="adr.libelle for adr in adresses" ng-model="livraison.toAdresse">
</select>

为了选择默认值,您可以ng-model在控制器中将其设置为:

$scope.liveraison.toAdresse = $scope.adresses[1];  // index 1 to select the CPE options

select 和 ng-options 的文档在这里

于 2013-11-13T10:27:08.530 回答
0

我找到了解决方案。她非常强大,因为这种结构一切皆有可能,而且功能强大! http://jsfiddle.net/EyBVN/48/

<div ng-app="" ng-controller="MyCtrl">
  <div ng-repeat="livraison in livraisons">
    {{livraison.libelle}} <select name="livAdresse" ng-model="livraison">
      <option ng-repeat="adr in adresses" ng-selected="adr.id==livraison.toAdresse" value="{{adr.id}}" title="{{adr.adresse}}">{{adr.libelle}}</option>
    </select> {{livraison.when}}
  </div>
</div>

非常感谢您的帮助:)

注意:这个解决方案很长一段时间都不起作用,因为我包含了 jQuery 库。这个库无声地产生了兼容性问题。

于 2013-11-13T11:26:14.220 回答