在我的应用程序中,我正在使用来自rz-slider-model v2.0.1的Range Slider,其中的值可以是未定义的,也可以是int值。
下面是我的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"
}]现在,如果API中的JSON对象返回为rz-slider-model,那么如何将0值默认为null。
我尝试设置类似rz-slider-model='feature.slider.selectedMin || 0'的内容,但在更改滑块值(如Error: [$compile:nonassign] Expression 'feature.slider.selectedMin || 0' used with directive 'rzslider' is non-assignable! )时获得异常
您可以找到示例代码这里。
请帮帮我!
发布于 2017-05-23 08:27:51
没有任何进一步的研究RzSlider,rz滑块模型必须是不可分配的,以提供双向数据绑定。这意味着你不能使用过滤器(这就是你想要做的,我想呢?)
表达式feature.slider.selectedMin || 0使用逻辑OR。根据selectedMin,它被计算为true/false,这不是指令可以使用的模型。
我建议您只需通过注入$filter 如何在控制器中使用滤波器来过滤控制器中的数组,或者简单地在控制器中循环数组。
示例循环:
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
});https://stackoverflow.com/questions/34129108
复制相似问题