AngularJS值更改在指令中不可见

AngularJS value change not visible in directives

本文关键字:指令 AngularJS      更新时间:2023-09-26

我想延迟编译子指令,直到父指令的预链接中的promise被解析并覆盖值(CONFIG)。

父级预链接中:

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

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

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

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

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

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

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