2016-09-05 73 views
0

我希望我可以問這裏和任何幫助,將不勝感激。Wordpress插件Angular JS排序

我使用的Wordpress Angular JS插件與一些奇怪的排序按字母順序排序。

這是顯示

<!-- for taxonomy --> 
        <div ng-if="item.option =='taxonomy' && !item.parent_taxonomy"> 

          <h3>{{ item.title }}</h3> 

          <div ng-if="item.taxonomy"> 

           <div ng-show="item.viewType == 'checkbox'"> 
            <ul> 
             <li ng-repeat="(key, value) in item.alloption"> 
              <input type="checkbox" ng-change="grabResult(this ,formData[item.taxonomy][key], item)" name="{{value}}" ng-model="formData[item.taxonomy][key]" > {{value}} 
             </li> 
            </ul> 
           </div> 

           <div ng-show="item.viewType == 'select'"> 
            <select class="form-control" ng-change="grabResult(this ,formData[item.taxonomy] , item)" ng-model="formData[item.taxonomy]"> 
             <option value="">Please select</option> 
             <option value="{{key}}" ng-repeat="(key ,value) in item.alloption">{{value}}</option> 
            </select> 
           </div> 

          </div> 

        </div> 

我需要按字母順序排列的李時珍的順序分類的主代碼。這是可行的嗎?

回答

0

li正在從item.alloption對象中產生。對象在JS中是無序的,因此您首先需要將Object轉換爲數組(因爲數組是按順序排列的),然後按字母順序對數組進行排序。

Angular docs建議使用toArrayFilter過濾器來達到此目的。您可以下載該過濾器並在angular.js之後加載它。

調整後的代碼應該是這個樣子(假設你想通過按鍵順序):

<li ng-repeat="value in item.alloption | toArray | orderBy : '$key'"> 
    <input type="checkbox" ng-change="grabResult(this ,formData[item.taxonomy][value.$key], item)" name="{{value}}" ng-model="formData[item.taxonomy][value.$key]" > {{value}} 
</li> 

我的代碼可能仍然有問題(因爲我還沒有運行),但希望鏈接的文檔提供一個起點。