AngularJS值更改在指令

时间:2016-01-04 11:30:29

标签: javascript angularjs directive prelink

我想延迟编译child指令,直到父指令的prelink中的promise将被解析并且value(CONFIG)将被覆盖。

家长 preLink中:

    somePromise.then(function(){ 
       CONFIG = 1;
       elem.append($compile(template)(scope));
    }

模板包含 Child 指令,因此在promise的解析后,Child的prelink正在执行。 现在我想在孩子的预链接中访问CONFIG并且它具有旧值({})。

为什么会这样? 小提琴:http://jsfiddle.net/RmDuw/642/

1 个答案:

答案 0 :(得分:0)

当您在指令中执行realmid, passwordkdf, lastLoadTime, is_tokenized_login_valid, is_tokenized_email_valid 时,实际上是在更改局部变量的值,该变量恰好是Angular值服务注入的值。

由于它是您正在更改的局部变量,因此在子指令中注入的内容不会更改。

为了通过价值服务向子指令发送值,您必须执行CONFIG = 1之类的操作。

这是有效的,因为尽管是局部变量(每个指令一个),它们是引用到同一个服务,因此指向对象的更改对两个引用都是可见的。