指令1
(function () {
"use strict";
angular
.module("app")
.directive("directive1", directive1);
directive1.$inject = ["$compile"];
function directive1($compile) {
return {
restrict: "E",
templateUrl: "app/views/directive1template.html",
scope: {
ui: '=info',
},
compile: function (tElem, tAttrs) {
return {
pre: function (scope, iElem, iAttrs) {
},
post: function (scope, iElem, iAttrs) {
console.log(scope);
}
}
}
};}}());
指令2
(function () {
"use strict";
angular
.module("app")
.directive("directive2", directive2);
directive2.$inject = ["$compile"];
function directive1($compile) {
return {
restrict: "E",
templateUrl: "app/views/directive2template.html",
scope: {
customer: '=info',
},
compile: function (tElem, tAttrs) {
return {
pre: function (scope, iElem, iAttrs) {
},
post: function (scope, iElem, iAttrs) {
console.log(scope);
}
}
}
};}}());
模板
<div class="row">
<div id="d3FormRows" class="well">
<!--custom directive placeholder-->
<directive2 info="data" index="$index"></directive2>
<!--custom directive placeholder-->
</div>
</div>
如果有什么我可以在directive2
内访问scope
directive1
个适当位置/值,我在这里寻找什么?
感谢。
答案 0 :(得分:0)
通常,您可以使用服务进行数据交换,然后在两个指令中注入该服务。
https://docs.angularjs.org/guide/services
例如:
angular
.module("app")
.service("MyDataService", function(){
return {
var1:'value1'
}
});
然后注入这个&#39; MyDataService&#39;在两个指令中提供服务,这样你就可以在一个地方改变数据,并且&#34;见&#34;其他指令的变化。
基本上&#39; .service&#39;与&#39; .factory&#39;相同,主要区别在于一个返回相同的实例(如Singleton),其他返回每个指令的新实例。