【发布时间】:2016-03-10 10:44:17
【问题描述】:
我的情况是一个父指令和许多子指令。
实际上我的要求是想在另一个指令中包含一个。像这样,我们必须使用许多指令。
谁能帮我找出这段代码有什么问题或提供任何符合我们要求的示例。
JS 小提琴链接:http://jsfiddle.net/Lcch85a1/
Angular JS 指令代码
bosAppModule.directive('layoutView',function($compile){
var layoutObj={};
linkFn=function(scope, element, attributes, controller) {
console.log("Layout : ");
console.log(scope.layoutData);
$compile(element.contents())(scope);
//var containerString = "<layoutContainerView layout-data='layoutObject.Data' container-data='containers' ng-repeat='containers in layoutData.collections.container.rowSet'>Hello container {{containers.containerId}} </layoutContainerView>";
//var compiledElement = $compile(containerString)(scope);
//element.append(compiledElement);
};
layoutObj.scope={layoutData:'='};
//layoutObj.transclude='true';
layoutObj.restrict='E';
//layoutContainerObj.replace='true';
layoutObj.template="<div id='{{layoutData.collections.layout.rowSet[0].layoutId}}' layout-data='layoutObject.Data'>Hello layout {{layoutData.collections.layout.rowSet[0].layoutId}}</div>";
layoutObj.link = linkFn;
return layoutObj;
});
bosAppModule.directive('containerView',function($compile){
var layoutContainerObj={};
linkFn=function(scope, element, attributes, controller) {
$compile(element.contents())(scope);
console.log("Container : ");
console.log(scope.layoutData);
console.log(scope.containerData);
};
layoutContainerObj.scope={layoutData:'='};
//layoutContainerObj.transclude='true';
layoutContainerObj.restrict='E';
//layoutContainerObj.replace='true';
layoutContainerObj.template="<div >Hello container {{containers.containerId}} </div>";
layoutContainerObj.link = linkFn;
return layoutContainerObj;
});
HTML 源代码:
<layout-view layout-data='layoutObject.Data'>
<container-view layout-data='layoutObject.Data' ng-repeat='containers in layoutObject.Data.collections.container.rowSet'></container-view>
</layout-view>
【问题讨论】:
-
请在创建问题之前搜索您的问题。
标签: javascript angularjs