Angular ui路由器在具有组件的状态之间共享param对象

时间:2017-05-13 18:38:35

标签: javascript angularjs parameters angular-ui-router state

我正在编写一个角度应用程序,其中父控制器管理全局状态,并在状态之间转换以向用户显示信息。

我跟着this answer并使用params将对象发送到子组件/控制器。它工作正常,但如果我更新子对象中的值,这些更改不会反映在父对象中。

我的代码组织如下:

的index.html

<bodyng-controller="main-loop">
...
  <li ui-sref="supernova({data:data})" ui-sref-active="active">

数据是一个对象,{&#34; a&#34;:1,&#34; b&#34;:2}

路由

.state("supernova", {
  component: 'supernova',
  params: { 'data': null }

成分<​​/ P>

component('supernova', {
  templateUrl: 'views/supernova.html',
  controller: ['$stateParams', supernova],
  controllerAs: 'supernova'
});

控制器

function supernova($stateParams) {
  var ctrl = this;
  ctrl.data= $stateParams.data;

我可以从视图和控制器中读取数据的精确值。但是如果我做这样的改变:

  ctrl.stuff = function () {
    ctrl.data.a = 20;

更改在组件中可见,但在父控制器中不可见。

有没有办法在使用ui-router结构的两者之间共享同一个对象实例?也就是说,一个中的变化反映在另一个中(以双向绑定方式)。

0 个答案:

没有答案