Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将对象从UI路由器中的父状态传递给所有组件_Angularjs_Angular Ui Router_Angularjs Components - Fatal编程技术网

Angularjs 将对象从UI路由器中的父状态传递给所有组件

Angularjs 将对象从UI路由器中的父状态传递给所有组件,angularjs,angular-ui-router,angularjs-components,Angularjs,Angular Ui Router,Angularjs Components,过了很长一段时间,我又去了安格拉斯。很高兴看到他们已经开始使用组件。我试图在我的项目中使用组件 我有几个需要访问父组件状态的子组件状态。基本上,一个对象将在所有子状态中共享。我无法通过组件实现这一点 下面是结构的样子- { name: 'wizard', url: '/wizard', component: 'wizard', redirectTo: 'wizard.init' }, { name: 'wizard.init', ur

过了很长一段时间,我又去了安格拉斯。很高兴看到他们已经开始使用组件。我试图在我的项目中使用组件

我有几个需要访问父组件状态的子组件状态。基本上,一个对象将在所有子状态中共享。我无法通过组件实现这一点

下面是结构的样子-

  {
    name: 'wizard',
    url: '/wizard',
    component: 'wizard',
    redirectTo: 'wizard.init'
  },
  {
    name: 'wizard.init',
    url: '/init',
    component: 'init'
  },
  {
    name: 'wizard.customize',
    url: '/customize',
    component: 'customize'
  },
  {
    name: 'wizard.finish',
    url: '/finish',
    component: 'finish'
  }
向导组件中有一个名为
$ctrl.settings
的对象/变量,我希望在其所有子状态中共享该对象/变量

我试过这样做-

<div ui-view settings="settings">
(function(angular){
  var app = angular.module('app');

  app.component('init', {
    templateUrl:'Scripts/dist/views/modules/wizard/init.html',
    controller: WizInit,
    bindings : {
      'settings' : '='
    }
  });

  function WizInit(){
    var $ctrl = this;

    $ctrl.$onInit = function(){
      console.log("init Start Step");
      console.log($ctrl.WizInit);
      $ctrl.WizInit= "start";
    }        
  }    
})(window.angular);
但我在每个状态下都没有定义,即使我在父组件
/wizard
中将其赋值

如何使其与组件和ui路由器一起工作

没关系

我自己解决的。我只需要在父组件状态的
ui视图
指令中添加
$ctrl

<div ui-view settings="$ctrl.settings">

工作迟到的缺点。有时候你的工作效率不够