将属性值评估为数字而不是指令中的字符串

时间:2014-07-16 08:54:51

标签: angularjs angularjs-directive nouislider

我对AngularJS很陌生,我不确定这是否真的可以完成。我在自定义指令模板中使用this angular指令,我想从隔离的范围属性中设置它的一些属性。问题是它们中的一些似乎只接受数值,而Angular将它们评估为字符串。

例如,这可以按预期工作:

<div slider ng-model="myModel" start=0 end=10 step=1></div>

我希望能够从隔离的范围属性设置开始/结束/步骤属性,如下所示:

<div slider ng-model="myModel" start={{attributes.range[0]}} end={{attributes.range[1]}} step={{attributes.step}}></div>

这解释如下:

<div ng-model="myModel" start="0" end="10" step="1" class="ng-isolate-scope ng-pristine ng-valid"></div>

我得到以下例外:

RangeError: noUiSlider: 'range' value isn't numeric.

有没有办法将指令属性评估为数字而不是字符串?

1 个答案:

答案 0 :(得分:0)

在当前版本的angular nouislider(v 0.3.1)中,您可以通过在源代码中使用更多parseFloats来解决此问题。它被另一个用户列为另一个问题的问题。 Here's the link但是如果链接死了,我会把代码放在下面。

slider.noUiSlider({
          start: [
            scope.ngFrom || scope.start,
            scope.ngTo || scope.end

应该是

slider.noUiSlider({
          start: [
            parseFloat(scope.ngFrom) || parseFloat(scope.start),
            parseFloat(scope.ngTo) || parseFloat(scope.end)