AngularJS:指令范围与控制器范围
我的工作与AngularJS在那里我有一个问题,2米范围冲突的一个项目发生冲突: - 我定义我的DOM的不同的地方(它的伟大工程) 范围控制器 - 我只是添加了3个指令来实现一个“帮助”工具提示功能,就像jQuery中的chardin.js插件(http://heelhook.github.io/chardin.js/):一个主要指令能够一次触发全部,一个触发按钮上的“子”指令,以及一个'child'指令用于标记每个我想要工具提示的DOM元素。AngularJS:指令范围与控制器范围
当我只有这3个指令时,它的效果很好,但是当我同时实现我的控制器和指令时,我不能再使用我的控制器了(范围似乎完全错误......)
我具有的结构是这样的:
- HTML - >主控制器
- 4个部分 - > 4个控制器
和予加在主体上有1条指令,1条指令指向某个按钮,1条指令指向4个部分的各个元素...
我知道我的解释很混乱,但我真的做了我的最适合我的第一条消息!
如果你想看到我为我的指令编写的代码,那就是:http://plnkr.co/edit/GrwgkH?p=preview
非常感谢您的帮助
S.
尝试包装控制器的范围模型在某些对象中。原始值(例如,数字,字符串,布尔值)通过属性具有相同的名称而隐藏在子范围中。
阅读更多关于AngularJS github wiki上的Understanding Scopes。
我最终也遇到了Primitive值的问题。我最终使用sugar.js和Object.extended()创建了一个$ scope.context对象,用于存储我的模型数据。这也允许轻松缓存数据。
感谢您的提示,我会看看sugar.js –
我已阅读了有角网站上的所有文档,并且我查看了github上的代码,但我没有想过维基!感谢您的想法! –
目前,我有2个解决方案:忘记指令,并使用一个服务,其中我使用angular.element.find与属性测试重建jquery插件没有jQuery(它完美的作品,但我不喜欢测试所有的DOM元素,以检查它们的属性..) 我有第二个想法是使用指令来填充元件的阵列,位于服务,然后使用该服务到阵列映射,从而消除所述第一测试所有的DOM元素去寻找那些与我的属性... –
不幸的是,我的第二个选择是不工作的,因为我有这样的问题:我的指令可以无处不在DOM,并可以有嵌套元素(在HTML的其余部分) 。 但这些嵌套元素不能访问我的指令上面定义的初始控制器! –