需要帮助选择“小渐进”角度

时间:2013-11-13 10:20:56

标签: angularjs option selectedindex

我已经在其他帖子中读过这篇文章,但无法理解。我有阵列:

$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)

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

Documentation for select and ng-options is here

答案 2 :(得分: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库。该库无提示会产生兼容性问题。