gpt4 book ai didi

javascript - 在 Controller 之间共享范围变量的最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-28 00:50:44 27 4
gpt4 key购买 nike

我有一个变量数组(我将其称为ArrVar),所有 Controller 都可以通过服务使用它。该变量已被指定为 CtrlA 中的作用域变量 $scope.ArrVar。如果用户切换CtrlA下的按钮,附加到CtrlA的方法将对$scope.ArrVar进行更改,更新服务中的变量,并使用 ng-repeat 呈现列表。

但是我有一个完全独立的 Controller CtrlB,它需要对 CtrlA 下的作用域变量进行更改,而该变量无法从 CtrlB 访问

我能想到两种解决方案:

  1. 全局控制者
  2. 在根范围内分配变量

但这两种方法似乎都不是最佳实践。还有其他优雅的方法吗?两个 Controller 完全不同,因此合并不行。

最佳答案

如果您共享特定于对象的数据(例如元素位置 data.msg),它将与没有监视或其他任何内容的服务绑定(bind)。

2 controllers plunker

app.controller('FirstCtrl', function($scope, Shared) {
$scope.data = Shared;
})
.controller('SecondCtrl', function($scope, Shared) {
$scope.data = Shared;
})
.factory('Shared', function() {
return { msg : ['one','two','three'] }
});

<div ng-controller="FirstCtrl">
<input ng-model="data.msg"/>
{{data}}
</div>
<div ng-controller="SecondCtrl">
<input ng-model="data.msg"/>
{{data}}
</div>

关于javascript - 在 Controller 之间共享范围变量的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814140/

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