2015-12-07 45 views
1

我使用範圍欄RzSlider V2.0.1在我的應用程序,其中RZ-滑蓋機型值可以是未定義或一個int值。AngularJS RzSlider:如果rz-slider-model未定義或爲null,我該如何默認?

下面是我的HTML模板

<tr ng-repeat="feature in categories"> 
    <td> 
     {{feature.featureName}}          
     <rzslider rz-slider-model="feature.slider.selectedMin" rz-slider-high="feature.slider.selectedMax" rz-slider-options="{floor:feature.slider.min, ceil:feature.slider.max, onChange: editor.slideChange(categoryId, feature.value, feature.slider.selectedMin, feature.slider.selectedMax)}"></rzslider> 
    </td> 
</tr> 

與模型價值可以像這些

[{ 
    "slider": { 
     "min": 0, 
     "max": 10, 
     "selectedMin": 2, 
     "selectedMax": 4 
     }, 
     "value": "1", 
     "featureName": "Fuel" 
}, 
{ 
    "slider": { 
     "max": 10, 
     "selectedMin": null, 
     "selectedMax": 5 
     }, 
     "value": "2", 
     "featureName": "Large" 
}] 

什麼現在,我怎麼可以默認rz-slider-model價值0如果從API返回我的JSON對象null

我已嘗試設置類似rz-slider-model='feature.slider.selectedMin || 0'但得到的異常而改變像Error: [$compile:nonassign] Expression 'feature.slider.selectedMin || 0' used with directive 'rzslider' is non-assignable!

滑塊值可以找到示例代碼here

請幫幫忙!

回答

0

對RzSlider沒有進一步的研究,rz-slider-model必須是不可分配的以提供雙向數據綁定。這意味着你不能使用過濾器(這正是你想要做的,我認爲?)

表達式feature.slider.selectedMin || 0正在使用邏輯或。取決於selectedMin,它被評估爲true/false,這不是指令可以使用的模型。

我建議你簡單地在控制器中過濾你的數組,注入$ filter How to use filter in controller或簡單地將數組循環到控制器中。

實施例的循環:

vm.myApiResponse.forEach(function(item) { 
      if(item.selectedMin == null) item.selectedMin = 0; 
      if(item.selectedMax == null) item.selectedMax = 0; 
      //any property which shouldn't be null 
     }); 
相關問題