【问题标题】:AngularJS : child state return parent viewAngularJS:子状态返回父视图
【发布时间】:2016-02-19 08:38:36
【问题描述】:

我在 ES6 中使用 angularJs。因此每个视图都是模块。

模块项目:

let projectModule = angular.module('project', [
  uiRouter
])

.config(function($stateProvider, $urlMatcherFactoryProvider) {

  $stateProvider
    .state('project', {
      url: '/projects/:origin/:owner/:name',
      template: '<project></project>',
      data : { pageTitle: 'Project' },
    });

})

.component('project', projectComponent)

.factory('$projectResource', service);

模块警报(其状态是项目状态的子状态):

let alertsModule = angular.module('alerts', [
  uiRouter
])

.config(($stateProvider) => {

  $stateProvider
    .state('project.alerts', {
      url: '/alerts',
      template: '<alerts></alerts>',
      data : { pageTitle: 'Alerts' }
    });

})

.component('alerts', alertsComponent);

所有视图都由组件管理,并从定义的模板属性以其相关状态显示。

<alerts></alerts>

组件是这样定义的:

import template from './alerts.html';
import controller from './alerts.controller';
import './alerts.scss';

let alertsComponent = {

  restrict: 'E',
  template: template,
  controller: controller,
  controllerAs: 'vm',
  bindings: true

};

export default alertsComponent;

View 是这样调用的:

<a ui-sref="project.alerts({ origin: project.origin, owner: project.owner.name, name: project.name })">Alerts</a>

如果我已经在项目中,那就这样:

<a ui-sref="project.alerts">Alerts</a>

两个 href 都正确显示:

/projects/github/btribouillet/btproject/alerts

但我正在查看父视图:

<project></project>

虽然应该是:

<alerts></alerts>

我做错了什么?到目前为止的解决方案是拥有彼此独立的状态。但我正在尝试构建一个面包屑模块​​,我希望能够访问父状态。如果状态相互独立,这是不可能的。

更新:

我的主要视图是 app.html :

<!-- Place all UI elements intended to be present across all routes in this file -->
<div class="site-wrapper">
  <navbar></navbar>
  <div class="view" ui-view></div>
  <navfooter></navfooter>
</div>

【问题讨论】:

  • 我的猜测是您忘记在“项目”组件 html 中放置 ui-view 指令,因此子状态无法加载。
  • 我要检查一下。我虽然这不是必需的,因为它是 2 个不同的视图。
  • 确实是这样,如果你想把它写成答案,我很乐意验证它。检查文档github.com/angular-ui/ui-router/wiki/…
  • 当然,我会这样做的:)

标签: javascript angularjs ecmascript-6 ui-sref


【解决方案1】:

您忘记在“项目”组件 html 中放置 ui-view 指令,因此子状态无法加载。

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 2017-01-16
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多