javascript - AngularJs:嵌套状态不显示

标签 javascript angularjs http angular-ui-router single-page-application

我正在尝试在我的项目中实现嵌套状态,但它们没有按预期工作。

虽然 View 模板和 js 调用并在后面加载,但屏幕没有改变,换句话说,嵌套屏幕没有显示。

http://{domain}/#/app/store/users/1/new

下面是我的工作代码片段

.state('app.store.users', {
    url: '/users/:storeid',
    params: { storeid: '1' },
    templateUrl: 'store/users',
    controller: 'UsersController',
    require: ['users', 'datatables'],
    data: {
    displayName: 'Store Users'
    }
})
.state('app.store.users.new', {
    url: '/new',
    templateUrl: 'store/newuser',
    controller: 'NewUserController',
    require: ['newuser'],
    data: {
    displayName: 'New User'
    }
})
;

http://{domain}/#/app/store/users/1/new

考虑到上述网址,显示用户而不是NewUser

提前致谢!!

最佳答案

您需要在父 View 中包含ui-view,以便它知道有一个 subview 附加到它。

基本上包括

<div ui-view></div>

或者

<ui-view></ui-view>

app.store.users 状态的一部分中,在您要加载子状态 HTML 的位置 (app.store.users.new)

这就是 ui-router 的工作原理。

检查这个笨蛋以更好地理解它: http://plnkr.co/edit/u18KQc?p=preview

编辑:

如果您希望它们作为两个单独的屏幕,它们不应该处于父子关系。它们应该是两个独立的状态,其中 URL 仍然可以嵌套。只需将您的州名更改为彼此独立即可。

这样的事情会起作用:

.state('app.store.users', {
    url: '/users/:storeid',
    params: { storeid: '1' },
    templateUrl: 'store/users',
    controller: 'UsersController',
    require: ['users', 'datatables'],
    data: {
    displayName: 'Store Users'
    }
})
.state('app.store.newusers', {
    url: '/users/:storeid/new',
    params: { storeid: '1' }, //you still have to pass params to it
    templateUrl: 'store/newuser',
    controller: 'NewUserController',
    require: ['newuser'],
    data: {
    displayName: 'New User'
    }
});

关于javascript - AngularJs:嵌套状态不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683996/

相关文章:

python - 使用 Tornado httpclient 对 Github API 的简单未授权请求返回 Forbidden

javascript - 未找到 Slack web-api 返回 channel chat.postMessage 到私有(private) channel

javascript - 为什么 onClick 中只有一个函数执行?

javascript - 禁用 Slick 网格中的特定单元格编辑

angularjs - 使负数显示为正数,但保持实际值

javascript - 无法将 iframe 元素从指令传递给 Angular Controller

javascript - 更改 AngularJS 输入范围的值

javascript - AMD(require.js)如何处理单个非amd js文件中的多个类?

http - 通过多部分请求上传文件

c++ - 为 C++ 应用程序提供 HTTP Web 服务器功能