1

我正在使用 AngularJS 开发一个项目,其中有 2 个范围冲突的问题: - 我有控制器在我的 DOM 的不同位置定义范围(效果很好) - 我刚刚添加了 3 个指令来实现“帮助”工具提示功能就像 jQuery 中的 chardin.js 插件(http://heelhook.github.io/chardin.js/):一个能够同时触发它们的主要指令,一个触发按钮上的“子”指令,以及一个'child' 指令用于标记我想要工具提示的每个 DOM 元素。

当我只有这 3 个指令时,它工作得很好,但是当我同时实现我的控制器和我的指令时,我不能再使用我的控制器了(范围似乎完全错误......)

我的结构是这样的:

  • html -> 主控制器
  • 4 个部分 -> 4 个控制器

我在正文(主要)上添加了 1 个指令,在某处的按钮上添加了 1 个指令,在 4 个部分的各个元素上添加了 1 个指令......

我知道我的解释很混乱,但我真的为我在这里的第一条信息尽了最大努力!

如果您想查看我为指令编写的代码,这里是:http ://plnkr.co/edit/GrwgkH?p=preview

非常感谢你的帮助

S。

4

2 回答 2

1

尝试将控制器的作用域模型包装在某个对象中。原始值(例如,数字、字符串、布尔值)通过其自己的同名属性隐藏在子作用域中。

阅读更多了解AngularJS github wiki 上的作用域。

于 2013-06-02T00:59:31.537 回答
1

我最终也遇到了原始值的问题。我最终使用 Sugar.js 和 Object.extended() 创建了一个 $scope.context 对象,我将模型数据存储在该对象上。这也允许轻松缓存数据。

于 2013-06-02T02:07:32.910 回答