gpt4 book ai didi

angularjs - 从 Angular 中的另一个 Controller 刷新一个 Controller

转载 作者:行者123 更新时间:2023-12-03 23:21:53 24 4
gpt4 key购买 nike

为了让两个 Controller 在 Angular 中相互通信,建议创建一个公共(public)服务,让两个 Controller 都可以访问。我试图用一个非常简单的 fiddle 来说明这一点。 .根据您按下的按钮,该应用程序应该定制按钮下方的消息。

那么为什么这不起作用呢?我是否遗漏了一些明显或更基本的东西?

HTML

<div ng-controller="ControllerOne">
<button ng-click="setNumber(1)">One</button>
<button ng-click="setNumber(2)">Two</button>
</div>
<div ng-controller="ControllerTwo">{{number}} was chosen!</div>

JavaScript
var app = angular.module('app', []);

app.factory("Service", function () {
var number = 1;
function getNumber() {
return number;
}
function setNumber(newNumber) {
number = newNumber;
}
return {
getNumber: getNumber,
setNumber: setNumber,
}
});

function ControllerOne($scope, Service) {
$scope.setNumber = Service.setNumber;
}

function ControllerTwo($scope, Service) {
$scope.number = Service.getNumber();
}

最佳答案

尝试在您的 Controller 中创建一个 watch :

$scope.$watch(function () { return Service.getNumber(); },
function (value) {
$scope.number = value;
}
);

这是一个工作 fiddle http://jsfiddle.net/YFbC2/

关于angularjs - 从 Angular 中的另一个 Controller 刷新一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com