【发布时间】:2015-11-10 04:32:24
【问题描述】:
我正在使用 Angular JS 创建一个动态菜单。我的指令就像
restrict : 'EA',
replace : true,
scope :{menu : "=menu"},
compile: function(element, attributes) {
var linkFunction = function($scope, element, attributes){
element.empty();
element.append('<div id="cssmenu"><ul><div id="menu-button">Menu</div>');
for (i = 0;i<$scope.menu.length;i++){
element.append("<li class='has-sub'><a href='#'> <span>"+$scope.menu[i].name+"</span></a></li>");
}
element.append('</ul></div>');
}
return linkFunction;
}
我的 HTML 代码是这样的
<div ng-app="mainApp" ng-controller="MenuController">
<my-menu menu="menu"></my-menu>
</div>
我期望像
那样生成资源 <div id="cssmenu">
<ul>
<div id="menu-button">Menu</div>
<li class='has-sub'><a href='#'><span>Home</span></a></li>
<li class='has-sub'><a href='#'><span>About</span></a></li>
</ul>
</div>
但是当前生成的却是这样的
<my-menu menu="menu" class="ng-isolate-scope">
<div id="cssmenu">
<ul>
<div id="menu-button">Menu</div>
</ul>
</div>
<li class="has-sub"><a href="#"><span>Home</span></a></li>
<li class="has-sub"><a href="#"><span>Contact</span></a></li>
</my-menu>
我面临的问题
1) 为什么会显示 my-menu 标签?
2) 为什么and标签在打印之前就关闭了?
也请找到Plunker的链接
【问题讨论】:
-
不确定您所看到的行为,但是我想知道您为什么使用编译功能而不是仅使用模板?我在这里没有看到任何简单模板无法处理的内容...
-
其实我需要一个动态创建模板的函数。
标签: javascript html css angularjs angularjs-directive