我想延迟编译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/
答案 0 :(得分:0)
当您在指令中执行realmid,
passwordkdf,
lastLoadTime,
is_tokenized_login_valid,
is_tokenized_email_valid
时,实际上是在更改局部变量的值,该变量恰好是Angular值服务注入的值。
由于它是您正在更改的局部变量,因此在子指令中注入的内容不会更改。
为了通过价值服务向子指令发送值,您必须执行CONFIG = 1
之类的操作。
这是有效的,因为尽管是局部变量(每个指令一个),它们是引用到同一个服务,因此指向对象的更改对两个引用都是可见的。