gpt4 book ai didi

javascript - AngularJS $stateProvider 加载父模板但不加载子模板

转载 作者:行者123 更新时间:2023-11-28 15:27:56 28 4
gpt4 key购买 nike

我刚刚开始迁移到 AngularJS,并且 angular-ui/ui-router 中的 $stateProvider 已经出现问题框架。这是我到目前为止所拥有的:

angular
.module('testApp', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/index/home");

$stateProvider
.state('index', {
abstract: true,
url: "/index",
template: "parent"
})
.state('index.home', {
url: "/home",
template: "child"
})
})
.controller("MainController", function() {
})

现在,运行此脚本会将我重定向到 http://example.com/#/index/home,但它仅在页面上显示 parent 字符串。 child 字符串未显示。根据我的理解,这应该加载第一个模板,因为我们位于 /#/index 域部分,然后加载第二个模板,因为我们位于嵌套页面 /#/index/home >.

有人可以帮助我并解释为什么这没有按预期工作吗?

最佳答案

在您的家长模板中,您需要另一个 <div ui-view></div>为了渲染子状态。

如果您想要多个嵌套 View ,则可以有多个 ui-view在您的父模板中。你只需要说出它们的名字。例如,

父模板:

<h1>parent</h1>
<div ui-view="child1"></div>
<div ui-view="child2"></div>

您定义子状态如下:

$stateProvider
.state('index', {
abstract: true,
url: "/index",
template: "parent"
})
.state('index.home', {
url: "/home",
views: {
'child1': {
templateURL: "child1.html"
}
}
})
.state('index.home2', {
url: '/home2',
views: {
'child2': {
templateURL: 'child2.html'
}
}
})

*注意我使用 templateURL 而不是 template。假设您的应用程序具有模块化文件结构。

关于javascript - AngularJS $stateProvider 加载父模板但不加载子模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28464751/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com