2014-09-29 124 views
0

我使用https://github.com/localytics/angular-chosen創建具有默認的項目選擇元件選擇:角選的默認選擇不工作

<select chosen="{inherit_select_classes:true}" disable-search="true" class="form-control span6" ng-model="myPick"> 
    <option value=""></option> 
    <option value="AAA">AAAAAAAAAAAAAAAA</option> 
    <option value="BBB" selected="selected">BBBBBBBBBBBBBBB</option> 
</select> 

我想BBBBBBBBBBBBBBB在默認情況下進行選擇,但它不工作:

http://plnkr.co/edit/H2hmEukfjaPL1T4W298O?p=preview使用selected="selected"$scope.myPick = "BBB";也不能使其工作。你能幫助爲什麼嗎?

如果我刪除的模型,它工作得很好:

<select chosen="{inherit_select_classes:true}" disable-search="true" class="form-control span6"> 
    <option value=""></option> 
    <option value="AAA">AAAAAAAAAAAAAAAA</option> 
    <option value="BBB" selected="selected">BBBBBBBBBBBBBBB</option> 
</select> 

更新1

  • 我的項目已經有一堆模板selectoption一堆。非常耗時將它們拉進$scope.someObjectng-options

  • 最好,如果我不需要聲明或初始化myPick任何地方,而是將selected放在html模板中。

+0

「選擇」指令有什麼作用?如果你刪除'selected =「{inherit_select_classes:true}」',它就可以正常工作。 – zsong 2014-09-29 23:42:10

回答

1

除了插入通過標記的選項,你可以預定義的選項,如下所示:

$scope.options = { 
    'AAA':'AAAAAAAAAAAAAAAA', 
    'BBB':'BBBBBBBBBBBBBBB' 

} ; 
$scope.myPick = "BBBBBBBBBBBBBBB"; 

,並在您的視圖:

<select chosen="{inherit_select_classes:true}" disable-search="true" class="form-control span6" ng-options="v for (k,v) in options" ng-model="myPick"> 
</select> 

你可以看到它是如何工作在這裏:http://plnkr.co/edit/aOV1agWFfJZaTU675wEF?p=preview

+0

是的,我知道這會工作,但我的項目已經有一堆'

+0

你如何使用一組哈希函數來工作? – Seth 2015-06-29 07:04:30

0

您的插件「選中」會更改選擇標記,因此不再選擇要素NT

<div class="chosen-container chosen-container-single form-control span6 ng-pristine ng-valid localytics-chosen chosen-container-single-nosearch" style="width: 835px;" title=""> 
    <a class="chosen-single chosen-default" tabindex="-1"> 
     <span>Select an Option</span> 
     <div><b></b></div> 
    </a> 
    <div class="chosen-drop"> 
     <div class="chosen-search"> 
      <input type="text" autocomplete="off" readonly=""> 
     </div> 
     <ul class="chosen-results"> 
      <li class="active-result" style="" data-option-array-index="2">AAAAAAAAAAAAAAAA</li> 
      <li class="active-result" style="" data-option-array-index="3">BBBBBBBBBBBBBBB</li> 
     </ul> 
    </div> 
</div> 

我想你需要創建一個自定義的指令,如果你想NG-模型與您的插件(.e.g工作。 https://docs.angularjs.org/api/ng/type/ngModel.NgModelController

+0

但是,你如何確保分配「選擇」後選擇被渲染雖然?這很棘手。 – 2014-09-30 20:39:20