gpt4 book ai didi

javascript - AngularJS:从另一个 Controller 或 JS 调用 Controller 更新功能

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

我有一个 Controller 可以更新屏幕的一部分。有时,用户执行的操作会在服务器端使该区域显示的内容无效。那么,当用户在别处单击按钮时,我如何才能进行另一个 Controller 更新?对于此类事情,我遵循了通常的模式,即:

appControllers.controller('linksController', ['$scope', '$filter', '$interval', function ($scope, $filter, $interval) {

$scope.update = function () {
// update code here... this is what I want to invoke from another function or area of JS
}

最佳答案

您可以为此使用共享服务/工厂。

如果你想将刚刚加载的数据从一个 Controller 传递到另一个 Controller ,你可以通过“共享服务”传递它,并使用 $broadcast/$emit 函数在其中广播事件。可以使用 $scope.$on 在任何 Controller 中收听广播事件。

   angular.module("appControllers", []).factory("sharedService", function($rootScope){

var mySharedService = {};

mySharedService.values = {};

mySharedService.passData = function(newData){
mySharedService.values = newData;
$rootScope.$broadcast('dataPassed');
}

return mySharedService;
});

appControllers.controller('linksController', ['$scope', 'sharedService', function ($scope, sharedService) {
$scope.update = function(newData){
sharedService.passData(newData);
};
}

appControllers.controller('anotherController', ['$scope', 'sharedService', function ($scope, sharedService) {
$scope.$on('dataPassed', function () {
$scope.newItems = sharedService.values;
});
}

关于javascript - AngularJS:从另一个 Controller 或 JS 调用 Controller 更新功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27250646/

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