【问题标题】:Howto set template variables in Angular UI Bootstrap? (accordion)如何在 Angular UI Bootstrap 中设置模板变量? (手风琴)
【发布时间】:2013-05-28 09:20:24
【问题描述】:

我尝试使用 Angular UI Bootstrap (http://angular-ui.github.io/bootstrap/#/accordion) 构建一个手风琴。在How do I set model according to chosen accordion group. UI Bootstrap,我找到了使用模板的可行解决方案。

在我的代码中,我使用<script type="text/ng-template" id="template/accordion/accordion-group.html"> 添加模板

在这个模板中可以使用<accordion-group heading="{{group.title}}" content="{{group.content}}" ng-repeat="group in groups"></accordion-group>设置的{{heading}}

但是如何设置其他自定义模板变量? 我也尝试在手风琴标签中设置content="{{group.content}}"。就算设置了也不知道怎么用,试过{{content.group}} {{content}}{% content %}

完整代码在:http://plnkr.co/dSIVGg64vYSTAv5vFSof

【问题讨论】:

    标签: angularjs angular-ui-bootstrap


    【解决方案1】:

    查看编辑后的插件:http://plnkr.co/edit/8YCUemqILQy3knXqwomJ

    您试图在指令的模板中嵌套控制器。我可能弄错了,但这不起作用,或者至少不是很好的方式。

    我建议将CollapseDemoCtrl 也转换为指令,而不是嵌套控制器。然后,您可以将 {{group.content}} 或任何其他内容传递给该指令。


    编辑:如何将数据传递到指令范围的示例

    HTML 将是这样的:

    <span ng-repeat="group in groups">
      <div testDirective content="group.content" title="group.title"> </div>
    </span>
    

    指令看起来像这样:

    angular.module('testModule', [])
      .directive('testDirective', function(){
        return {
          restrict: 'A',
          scope: { 
            content:'=content',
            title: '=title'
          },
          template: '<h1>{{title}}<h1> <div>{{content}}</div>',
          link: function(scope, element, attrs) {
          }
        }
      });
    

    【讨论】:

    • 谢谢。看来您解决了我的问题,但没有回答问题。因为当我不在模板中嵌套控制器时,我不能在模板中使用{{group.content}}
    • 那是因为你使用了ng-repeat="group in groups" 来遍历groups 数组。因此,首先{{group}} 仅在ng-repeat 中可用。然后它的内容通过嵌入传递到accordion,因此不能作为{{content}}{{group.content}} 使用。这篇关于嵌入的教程应该会对你有所帮助:http://www.youtube.com/watch?v=cjrBTjMvruI
    • 另一种方法是将{{group.content}} 绑定到手风琴指令范围内的模型,例如{{mycontent}}。然后在手风琴模板中,您可以使用{{mycontent}} 访问原始内容。但是您不需要这样做,因为您在&lt;accordion-group&gt;&lt;/accordion-group&gt; 标签中放置的任何代码都会传递给手风琴体。
    • 你有这个替代方案的示例代码吗?你会把它添加到你的答案中吗(因为它也回答了这个问题)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多