我有一条指令可以包装另一个这样的指令:
<div direction from="origin" to="destination">
<div direction-map line-color="#e84c3d"></div>
</div>
该direction-map
指令已被包含在内,请参见我的代码(Fiddle可在此处):
var directionController = function() {
//do stuffs
};
var directionMapController = function() {
//do other stuffs
};
var Direction = angular.module("direction", [])
.controller("directionController", directionController)
.controller("directionMapController", directionMapController)
.directive("direction", function() {
var directive = {
restrict: "AEC",
controller: "directionController",
scope: {},
transclude: true,
link: {
pre: function($scope, $element, attrs, controller, transclude) {
console.log("direction's controller is directionController : ");
console.log(controller.constructor === directionController);//true, that's ok
transclude($scope, function(clone) {
$element.append(clone);
});
}
}
};
return directive;
})
.directive("directionMap", function() {
var directive = {
require: "^direction",
controller: "directionMapController",
restrict: "AEC",
scope: true,
link: {
pre: function($scope, $element, $attrs, controller) {
console.log("directionMap's controller is directionMapController :");
console.log(controller.constructor===directionMapController);//false that's not OK!!!!
}
}
};
return directive;
});
所以我的问题是:
为什么我的子指令direction-map
将其父控制器的参数作为参数(我认为是因为它已被包含),是否有可能避免这种情况,还是我应该重新考虑一下我的代码?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句