AngularJS:嵌套在ng-repeat中的指令

时间:2012-11-22 02:55:18

标签: angularjs

我有一个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/

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>"
  };    
});

http://jsfiddle.net/YusCU/