-->

当$渲染()的ngModel真实的数据叫什么名字?(When is $render() of ngM

2019-10-23 03:53发布

我写一个指令与ngModel合作。 如示例所示,我设置了$渲染控制器我的函数的功能。

当代码初始化时,它被调用了两次,第一次用$ modelValue和$ viewValue设置为NaN,再进行第二次的时间与模型的实际价值。

问题是,NaN的是测试熊。 函数isNaN()是毫无价值的,到目前为止,我所看到的(它返回假的[""]但真正的["."]Number.isNaN()没有得到广泛的支持。

有什么建议么?

Answer 1:

我想出了一个局部的回答我的问题,关于如何测试NaN的 ,但它似乎仍然尴尬的我。



Answer 2:

$modelValue$viewValuengModel永远只能承担(除非特别指定)的值NaN一开始 -在链接时-和之前的任何$formatters$render$validators (按顺序)有机会跑。

换句话说,如果你登录在不同的点这些价值,你会得到如下(假设ngModel变量设置为"foo" ):

              link-time    $formatters     $render     $validators
              -----------------------------------------------------
$modelValue     NaN           "foo"         "foo"         "foo"
$viewValue      NaN            NaN          "foo"         "foo"

演示

在的话,除非你需要访问ngModellink -时间,有没有需要警惕NaN 。 此外,也没有双调用-在ngModel管每改变运行一次。

鉴于您在留言举例如我猜你看到NaN$render功能,因为你手动调用$render在链接时。



文章来源: When is $render() of ngModel called with real data?
标签: angularjs nan