【问题标题】:AngularJS: Component communication - interpolate child contentAngularJS:组件通信 - 插入子内容
【发布时间】:2018-10-14 21:24:22
【问题描述】:

这里是intercomponent communication的官方例子

我想要一些不同的行为。可以说,我希望窗格内容是选项卡名称。

例如

<my-tabs>
  <my-pane>Hello</my-pane>
  <my-pane>World</my-pane>
</my-tabs>

然后在父模板中我尝试了类似的方法,但它不起作用。

<div class="tabbable">
  <ul class="nav nav-tabs">
    <li ng-repeat="pane in $ctrl.panes" ng-class="{active:pane.selected}">
      <a href="" ng-click="$ctrl.select(pane)"><div class="tab-content" ng-transclude></div></a>
    </li>
  </ul>
</div>

这怎么可能?

【问题讨论】:

    标签: angularjs components communication


    【解决方案1】:

    为此,您需要手动获取嵌入的内容并将其设置为标题。改变tab-pane的controller如下:

     controller: function($transclude) {
        this.$onInit = function() {
          $transclude(clone => {
            this.title = clone.text();
          });
    
          this.tabsCtrl.addPane(this);
        };
      }
    

    【讨论】:

    • 感谢您的建议,不过我有一个问题 - 所以我仍然需要在父模板中隐藏
      ,对吗?好像我们要渲染子内容两次
    猜你喜欢
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 2016-09-23
    • 2021-11-11
    • 2019-04-24
    • 2016-12-18
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多