我想延迟编译子指令,直到父指令的预链接中的 promise 得到解决并且值(CONFIG)将被覆盖。
在家长的预链接中:
somePromise.then(function(){
CONFIG = 1;
elem.append($compile(template)(scope));
}
模板包含Child指令,因此Child的预链接在promise解析后执行。 现在我想访问 Child's 预链接中的 CONFIG,它具有旧值 ({})。
为什么会发生这种情况? fiddle :http://jsfiddle.net/RmDuw/642/
最佳答案
当您在指令中执行 CONFIG = 1
时,您实际上是在更改局部变量的值,该变量恰好是 Angular 值服务注入(inject)的变量。
由于您要更改的是局部变量,因此在子指令中注入(inject)的内容不会更改。
为了通过值服务向子指令发送值,您必须执行类似 CONFIG.value = 1
的操作。
这是有效的,因为尽管它们是局部变量(每个指令一个),但它们是对同一服务的引用,因此指向对象的更改对两个引用都是可见的。
关于javascript - AngularJS 值更改在指令中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34590154/