javascript - Angular 1.x - 将组件状态解析数据传递给其他组件

标签 javascript angularjs angular-ui-router

我有一个基于虚拟组件的应用程序,它具有以下组件:

- App
-- Page
---- Breadcrumb

What i want is to pass the Page resolve data to the Breadcrumb.

This is how the Page config looks like:

$stateProvider.state('page', {
  url: '/page',
  component: 'page',
  resolve: {
    routes: ($stateParams) => {
     "ngInject";

     return [
        {url: "/", name: "Home"},
        {url: "/page", name: 'Page'}
      ];
    }
  }
})

Page Controller :

class PageController {
  constructor($stateParams) {
    "ngInject";


    this.themeColor = "#ff8fd1";

    // When i use static data it's works fine..
    //this.routes = [
    //  {url: "/", name: "Main page"},
    //  {url: "/page", name: 'Sub page'},
    //];

    this.routes = $stateParams.routes;
  }
}

这是我的 Breadcrumb组件:

let breadcrumbComponent = {
  restrict: 'E',
  bindings: {
    themeColor: "<",
    routes: "<"
  },
  template,
  controller
};

Breadcrumb 的 DOM组件:

<breadcrumb theme-color="$ctrl.themeColor" routes="$ctrl.routes"></breadcrumb>

每当我想从页面 Controller 解析方法定义路由时,路由都未定义。

如何等待数据,或者绑定(bind)Breadcrumb当数据到达时再一次?

最佳答案

一种简单的方法是仅在解析路由时使用 ngIf 指令渲染 breadcrumb 组件:

<breadcrumb 
    ng-if="$ctrl.routes"
    theme-color="$ctrl.themeColor" 
    routes="$ctrl.routes"></breadcrumb>

关于javascript - Angular 1.x - 将组件状态解析数据传递给其他组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38764779/

相关文章:

javascript - 将 ng-model 与 ng-options 结合使用,将 Restangular 与 AngularJS 结合使用

javascript - 浏览器如何处理 UTF8MB4

angularjs - 如何在单个函数中清除所有AngularJS $ scope和$ rootScope值?

javascript - Angular UI-Router从子级更新父级范围

Angular 9 与 ui 路由器混合导致尝试在设置 AngularJS 注入(inject)器之前获取它。如何调试/修复?

javascript - 什么是angular.isFunction在angular 2中的等价物

javascript - Node.js:如何在 POST 中传递参数?

json - 如何在angularJS中将数据写入文件

javascript - 使用 Angular 创建动态多个表

javascript - 如何在单击时调用不同 div 中的 div 中的数据?