【发布时间】: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