AngularJS 值更改在指令中不可见

AngularJS value change not visible in directives

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

Parent的前链接中:

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

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

为什么会这样? Fiddle: http://jsfiddle.net/RmDuw/642/

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

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

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

的操作

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