如何在AngularJS指令之间传递对象
How to pass object between directives AngularJS?
如果我在指令A的链接函数中定义/实例化对象foo
,有什么方法可以从单独指令的链接函数访问同一对象?
文档引用:
控制器在预链接阶段之前被实例化与其他指令共享(请参见require属性)。这允许相互沟通和增强彼此的指令行为
这意味着,要在同一对象或其子对象上的两个指令之间共享数据,您需要在指令A控制器中公开foo,在指令B中注入require
选项。
指令如下:
.directive("dirA", function () {
return {
controller: function ($scope, $element, $attrs) {
},
link: function ($scope, $element, $attrs, controller) {
controller.foo = $attrs.dirA;
}
}
})
.directive("dirB", function () {
return {
link: function ($scope, $el, $attr, controller) {
$scope.shared = controller.foo;
},
require: "dirA"
}
})
工作示例。
我没有足够的声誉来评论,所以我将在这里添加它。
一些额外的信息,为某人与同样的问题斗争。这取决于指令的使用位置。
^前缀表示此指令在上搜索控制器它的父级(如果没有^前缀,该指令将查找仅在其自身元件上的控制器)。
相关文章:
- JavaScript中的函数和对象之间没有区别吗?
- 在控制器和数据对象之间同步数据
- 不同对象之间的递归,并将它们唯一地组合在一起,不重复
- 两个对象之间的Javascript原型
- 在window.onload之前/之后创建对象之间的区别
- 如何管理原始对象之间的数据依赖关系
- javascript中构造函数和对象之间的等价性
- 为什么 JSON 中的对象之间有逗号
- 对字符串对象调用 .localeCompare 与构造特制的 Intl.Collator 对象之间的性能差异
- 如何匹配两个对象之间的值并使用特定值创建新对象
- D3 - 在两个不与其他对象相交的对象之间绘制一条线
- 两个时间对象之间的差异
- 函数和对象之间的差异,以及它如何影响性能
- jQuery函数,用于计算两个JavaScript对象之间的差异
- jQuery 自定义事件在全局范围内工作,但在对象之间不起作用
- 以天为单位的 2 个 ember 日期时间对象之间的差异
- 使用原型和对象文字表示法创建对象之间的区别
- HTML/JS Canvas 在对象之间画线
- 在 jQuery 对象和纯 js 对象之间进行转换
- 循环遍历 JSON,在对象之间插入键/值