我正在与AngularJS合作开展一个项目,我遇到了两个范围冲突的问题: - 我有控制器在我的DOM的不同位置定义范围(它很棒) - 我刚刚添加了3个指令来实现一个“help”工具提示函数,就像jQuery(http://heelhook.github.io/chardin.js/)中的chardin.js插件一样:一个主指令能够一次触发它们,一个'child'指令就是触发按钮,以及一个'child'指令,用于标记我想要工具提示的每个DOM元素。
当我只有那3个指令时,它工作得很好,但是当我同时实现我的控制器和我的指令时,我再也不能使用我的控制器了(范围似乎是完全错误的......)
我的结构是这样的:
我在主体(主要的一个)上添加了1个指令,在某个地方添加了1个指令,并在4个部分的各个元素上添加了1个指令...
我知道我的解释很困惑,但我在这里的第一条消息真的做到了最好!
如果你想查看我为我的指令编写的代码,请点击:http://plnkr.co/edit/GrwgkH?p=preview
非常感谢你的帮助
S上。
答案 0 :(得分:1)
尝试将控制器的范围模型包装在某个对象中。原始值(例如,数字,字符串,布尔值)通过其自己的具有相同名称的属性隐藏在子范围中。
在AngularJS github wiki上的Understanding Scopes中阅读更多内容。
答案 1 :(得分:1)
我最终也遇到了Primitive值的问题。我最终使用sugar.js和Object.extended()来创建我存储模型数据的$ scope.context对象。这样也可以轻松缓存数据。