我写一个指令与ngModel合作。 如示例所示,我设置了$渲染控制器我的函数的功能。
当代码初始化时,它被调用了两次,第一次用$ modelValue和$ viewValue设置为NaN,再进行第二次的时间与模型的实际价值。
问题是,NaN的是测试熊。 函数isNaN()
是毫无价值的,到目前为止,我所看到的(它返回假的[""]
但真正的["."]
和Number.isNaN()
没有得到广泛的支持。
有什么建议么?
我写一个指令与ngModel合作。 如示例所示,我设置了$渲染控制器我的函数的功能。
当代码初始化时,它被调用了两次,第一次用$ modelValue和$ viewValue设置为NaN,再进行第二次的时间与模型的实际价值。
问题是,NaN的是测试熊。 函数isNaN()
是毫无价值的,到目前为止,我所看到的(它返回假的[""]
但真正的["."]
和Number.isNaN()
没有得到广泛的支持。
有什么建议么?
我想出了一个局部的回答我的问题,关于如何测试NaN的 ,但它似乎仍然尴尬的我。
在$modelValue
和$viewValue
的ngModel
永远只能承担(除非特别指定)的值NaN
在一开始 -在链接时-和之前的任何$formatters
, $render
和$validators
(按顺序)有机会跑。
换句话说,如果你登录在不同的点这些价值,你会得到如下(假设ngModel
变量设置为"foo"
):
link-time $formatters $render $validators ----------------------------------------------------- $modelValue NaN "foo" "foo" "foo" $viewValue NaN NaN "foo" "foo"
演示
在的话,除非你需要访问ngModel
的link
-时间,有没有需要警惕NaN
。 此外,也没有双调用-在ngModel
管每改变运行一次。
鉴于您在留言举例如我猜你看到NaN
在$render
功能,因为你手动调用$render
在链接时。