1

我有一个 angularjs web 应用程序,它的视图具有以下基本结构:

<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 是另一个具有模板和控制器的指令。

logic-options 指令提供了一些供子作用域使用的函数,并且具有 replace: false 以便它应该将其模板附加到 li 的末尾。text-entry 和 other-entry 指令只需插入一些模板,这些模板也可用于其他视图。

当我运行它时,逻辑选项指令将呈现并似乎起作用,但内部指令(文本条目和其他条目)不会。

在控制台中,我收到错误:

Error: Argument '?' is required qa@...

是什么导致了这个错误,我该如何纠正它?

一个演示这个问题的小提琴:http: //jsfiddle.net/cubicleWar/c3mTT/1/

4

1 回答 1

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/

于 2012-11-22T06:48:10.750 回答