【问题标题】:how can I change a value of a variable from nested controller and viceversa如何从嵌套控制器更改变量的值,反之亦然
【发布时间】:2017-02-10 18:48:16
【问题描述】:

我需要从“padre 控制器”更改 mensaje 变量并将其可视化。 并从“hijo 控制器”更改变量,反之亦然,但它不起作用

如果单击“cambiar padre”,则值发生变化,如果单击“cambiar desde el hijo”,则它可以工作,但是当我再次单击“cambiar desde el padre”时,它不再工作了

js

 angular.module('starter.controllers', [])

  .controller('padre', function ($scope) {

    $scope.mensaje = "hola";

    $scope.cambiarPadre = function () {
      $scope.mensaje = "texto modificado desde el padre";
    };


  })

  .controller("hijo", function ($scope) {


    $scope.cambiarHijo = function () {
      console.log('entro a cambiar hijo : ');

      $scope.mensaje = "texto modificado desde el hijo";
    };

    $scope.cambiarPadreDesdeHijo = function () {
      console.log('entro a cambiar hijo : ');

      $scope.$parent.mensaje = "texto modificado desde el hijo";
    };

  })

html

<ion-view view-title="Dashboard" ng-controller="padre as p">
  <ion-content class="padding">

    DEL PADRE
    <br>

    padre:{{mensaje}}
    <br>
    hijo:{{mensaje}}

    <br>
    <br>


    <button ng-click="cambiarPadre()">cambiar desde el padre</button>


    <div ng-controller="hijo as h">

      DEL HIJO sin nada
      <br>
      sin parent:
      <br>
      padre:{{mensaje}}
      <br>
      hijo:{{mensaje}}

      <br>
      <br>

      con parent:
      <br>
      padre:{{$parent.mensaje}}
      <br>
      hijo:{{$parent.mensaje}}
      <br>

      <button ng-click="cambiarHijo()">cambiar desde el hijo</button>
      <br>

      <br>
      <button ng-click="cambiarPadreDesdeHijo()">cambiar padre desde hijo</button>
    </div>


  </ion-content>
</ion-view>

【问题讨论】:

  • =把它们做成组件并传递props,停止使用ng-controller

标签: javascript angularjs inheritance controllers


【解决方案1】:

这不是从另一个控制器访问值的正确方法。如果您真的想在它们之间共享数据,您应该使用服务来存储该值,并且两个控制器都可以更改该值。如果你真的想在控制器之间进行继承,你应该尝试this thread。 除此之外,我不确定“hijo”的父级是否会是“padre”,因为您使用它形成 ion-* 指令。它不起作用的可能问题来自 javascript (prototipical inheritance) 的性质,并且您可能没有编写控制器读取的相同变量。

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多