【问题标题】:md-tabs with angular ui-router not rendering grandchildren带有角度 ui-router 的 md-tabs 不呈现孙子
【发布时间】:2017-08-04 00:55:21
【问题描述】:

我将 Angular 1.6.2 与 Angular Material 1.3 一起使用,并且大量使用了组件。我有一个外部“appComponent”,它包装了应用程序的其余部分,并提供了一个带有导航的标题工具栏、一个页脚,然后我的顶级应用程序组件加载到应用程序组件内的 ui 视图中。

我的组件之一是客户维护页面,该页面在选项卡 1 的选项卡中包含列表,然后在选项卡 2 中包含特定于客户的详细信息。

tab 2 通过 ng-include 加载另一个包含多个选项卡的模板。其中一些选项卡包含子数据,我想延迟加载它们,所以我为它们创建状态如下:

 .state('customers', {
                url: "/customers",
                templateUrl: "components/customer/index.html",
                role: "customers",
                resolve: { authenticate: authenticate }
            })
            .state('customers.customer', {
                url: "/{customerId}",
                templateUrl: "components/customer/index.html",
                role: "customers - edit",
                view: "customerdetail",
            })
            .state('customers.customer.acknowledgements', {
                url: "/acknowledgements",
                templateUrl: "components/customer/customerAcknowledgements.html",
                view: "customeracknowledgements",
                onEnter: function() {
                    debugger
                }
            })
            .state('customers.customer.importinstructions', {
                url: "/importinstructions",
                templateUrl: "components/customer/customerImportInstructions.html",
                role: "customers - edit",
                view: "customerImportInstructions",
            })
            .state('customers.customer.orderhistory', {
                url: "/orderhistory",
                templateUrl: "components/customer/customerOrderHistory.html",
                // parent resolve is inherited. Not implementing
                view: "customerOrderHistory",
            })

html 包含带有 name 参数的 ui-view 每个视图,如下所示:

        <md-tabs md-dynamic-height class="md-primary" md-no-select-click md-selected="selectedTab">
            <md-tab label="General Info">
                <!-- content removed for the sake of brevity -->
            </md-tab>
            <md-tab>
                <md-tab-label><span ui-sref="customers.customer.acknowledgements">Acknowledgements</span></md-tab-label>
                <md-tab-body>
                    <div ui-view name="customeracknowledgements"></div>
                    <!--<div ui-view></div>-->
                </md-tab-body>
            </md-tab>
            <md-tab layout-fill ui-sref="customers.customer.importinstructions" label="Import Instructions" md-on-select="$ctrl.selectTab('customers.customer.importinstructions')">
                <md-tab-body>
                    <div ui-view name="customerImportInstructions"></div>
                </md-tab-body>
            </md-tab>
            <md-tab label="Order History" ui-sref="customers.customer.orderhistory" md-on-select="$ctrl.selectTab('customers.customer.orderhistory')">
                <md-tab-body>
                    <div ui-view=n ame "customerOrderHistory">
                    </div>
                </md-tab-body>
            </md-tab>
        </md-tabs>

我尝试过各种各样的事情。我知道状态也在导航,因为我已经在每个状态的 customeracknowledgements 状态上使用了 onEnter 函数,并且它为每个状态触发。此外,如果我在 Chrome 开发人员工具中查看网络选项卡,当我导航到包含选项卡时,会进行 XHR 调用以检索每个模板,但任何选项卡上都没有显示任何内容。

我用谷歌搜索了 *#%!为此,阅读并尝试了我能找到的一切,但没有任何帮助。任何想法,将不胜感激。

【问题讨论】:

    标签: angularjs angular-ui-router angular-material


    【解决方案1】:

    我可以通过像这样更改视图语法来实现这一点:

                .state('customers.customer.acknowledgements', {
                    url: "/acknowledgements",
                    role: "customers - edit",
                    views: { "customeracknowledgements": 
                        { templateUrl: "components/customer/customerAcknowledgements.html" } },
                })
    

    让模板加载到选项卡正文中并保留所有动画效果的最简洁的方法似乎是:

                <md-tab label="Acknowledgements" ui-sref="customers.customer.acknowledgements">
                    <md-tab-body>
                        <div ui-view name="customeracknowledgements"></div>
                    </md-tab-body>
                </md-tab>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-20
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 2015-05-30
      • 2015-12-16
      相关资源
      最近更新 更多