【发布时间】:2014-02-04 13:02:21
【问题描述】:
如果我将替换选项设置为 true,我想知道是否有办法访问指令的范围。例如,这里是初始的 jsbin: http://jsbin.com/ABuSODub/2/edit
当您单击x 时,指令将关闭。 close() 函数是在指令自己的隔离范围内定义的。但是,如果我将 replace 设置为 true,事情就会停止工作,这是可以理解的,因为不再有指令。
可以让它工作吗?它有更好的方法。我真的不想在父控制器上设置关闭功能。还是我完全看不到的其他问题?
【问题讨论】:
-
你的代码抛出错误
TypeError: Cannot call method 'split' of undefined -
@IlanFrumer 对不起。我已经修复了这些并更新了上面的链接。
-
问题在于 ng-if 创建一个新的嵌套范围,因此被嵌入的元素无法正确看到父级。您可以通过使用 ng-show 删除 ng-if 进行测试,您的问题将很容易解决
标签: javascript angularjs angularjs-directive angularjs-scope