1

我想延迟编译子指令,直到父指令的预链接中的承诺得到解决并且值(CONFIG)将被覆盖。

家长的预链接中:

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

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

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

4

1 回答 1

0

当您CONFIG = 1在指令中执行此操作时,实际上是在更改局部变量的值,该变量恰好是由 Angular 值服务注入的变量。

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

为了通过值服务向子指令发送值,您必须执行类似CONFIG.value = 1.

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

于 2016-01-04T13:37:06.440 回答