Javascript 如何更改嵌套控制器和viceversa中变量的值
我需要更改padre控制器中的mensaje变量并将其可视化。 并更改hijo控制器和viceversa的变量,但它不起作用 如果点击cambiar padre,值发生变化,如果点击cambiar desde el hijo,它会工作,但当我再次点击cambiar desde el padre时,它不再工作 js htmlJavascript 如何更改嵌套控制器和viceversa中变量的值,javascript,angularjs,inheritance,controllers,Javascript,Angularjs,Inheritance,Controllers,我需要更改padre控制器中的mensaje变量并将其可视化。 并更改hijo控制器和viceversa的变量,但它不起作用 如果点击cambiar padre,值发生变化,如果点击cambiar desde el hijo,它会工作,但当我再次点击cambiar desde el padre时,它不再工作 js html 这不是从另一个控制器访问值的正确方法。如果您真的想在它们之间共享数据,您应该使用服务来存储该值,并且两个控制器都可以更改该值。如果您真的想在控制器之间执行继承,您应该尝试从中
这不是从另一个控制器访问值的正确方法。如果您真的想在它们之间共享数据,您应该使用服务来存储该值,并且两个控制器都可以更改该值。如果您真的想在控制器之间执行继承,您应该尝试从中执行一些操作。
除此之外,我不确定hijo的父级是否是padre,因为您使用它来形成ion-*指令。它不起作用的可能问题来自javascript的性质,并且您可能没有编写与控制器读取的变量相同的变量。使它们成为组件并使用=,传递道具,停止使用ng控制器
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";
};
})
<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>