我有一个angularjs网络应用程序,其视图具有以下基本结构:
<ul>
<li ng-repeat="entry in entries" ng-switch on="entry.type" logic-options >
<div ng-switch-when=1 text-entry></div>
<div ng-switch-when=2 other-entry></div>
</li>
</ul>
这里text-entry和other-entry是指令,它们有自己的模板和逻辑选项是另一个有模板和控制器的指令。
logic-options指令提供了一些由子作用域使用的函数,并且替换为:false,因此它应该将其模板附加到li的末尾。 text-entry和other-entry指令只需插入一些模板,这些模板也可用于其他视图。
当我运行它时,logic-options指令将呈现并且似乎正在运行,但内部指令(text-entry和other-entry)不会。
在控制台中我收到错误:
Error: Argument '?' is required qa@...
导致此错误的原因是什么?如何更正错误?
演示此问题的小提琴:http://jsfiddle.net/cubicleWar/c3mTT/1/
答案 0 :(得分:2)
我相信你应该抄袭儿童元素,也许你可能想避免 将'ng-switch'指令放在不同的层中,这样它就不会发生冲突 其他指令。
app.directive('logicOption', function() {
return {
replace: false,
transclude: true,
template: "<div ng-transclude>{{entry.type}} : This is the logic stuff</div>"
};
});