因此,我有以下简化的 plunker 来显示我的指令遇到的问题:
http://plnkr.co/edit/aXW7YlpensjcYsLTGwmo?p=preview
这有一个使用 compile 属性并返回具有 pre/post 函数的对象的指令。我遇到的问题是,当我在指令上使用 templateUrl 属性时,我对 pre 函数中的范围所做的任何更改都不会反映在 post 函数传入的范围中。
plunker 具有控制台日志,因此如果您打开控制台,您会注意到有一个对象已记录和未定义,即在 compile 属性中返回的对象的 pre 和 post 函数中记录 scope.options。如果你打开 app.js 并注释掉 templateUrl 定义,你会得到同一个对象的 2 个日志,它不再在帖子中未定义。这在使用模板属性时也有效。
仅当指令定义了 templateUrl 属性时,我在编译的返回对象前函数中所做的更改是否有任何原因不会反映在后函数范围中?