gpt4 book ai didi

angularjs - 使用同一 Controller 在两个 div 之间共享数据

转载 作者:行者123 更新时间:2023-12-01 08:27:34 24 4
gpt4 key购买 nike

我有两个具有相同 Controller 的 div,两个 div 具有几乎相同的数据来显示。两个 div 都有一个更新对象的按钮。但是当一个 div 的按钮更新对象时,它不会反射(reflect)在第二个 div 上。

<body ng-app="myapp">
<div ng-controller="ctrl1">
{{list.greet}}
<button ng-click="add('hi')">add</button>
</div>
<div ng-controller="ctrl1">
{{list.greet}}
<button ng-click="add1('hello')">add</button>
</div>
</body>

脚本

var app=angular.module('myapp',[])
.controller('ctrl1',function($scope){
$scope.list={
greet:'hola'
}
$scope.add=function(data){
$scope.list.greet=data
}
$scope.add1=function(data){
$scope.list.greet=data
}
})

最佳答案

您可以使用服务在 Controller 和同一 Controller 的不同实例之间共享数据:

var app = angular.module('myapp', [])
.controller('ctrl1', function($scope, myService) {
$scope.a = myService.list;
$scope.add = function(data) {
$scope.a.greet.push(data);
}
})
.service('myService', function() {
this.list = {greet: []};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>

<body ng-app="myapp">
<div ng-controller="ctrl1">
Ctrl1: <br>
{{a.greet}}
<button ng-click="add('c1a')">add</button>
</div>
<div ng-controller="ctrl1">
Ctrl1: <br>
{{a.greet}}
<button ng-click="add('c1b')">add</button>
</div>
</body>

关于angularjs - 使用同一 Controller 在两个 div 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353323/

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