【问题标题】:AngularJS scope variable value change not reflecting across controllersAngularJS范围变量值的变化没有反映在控制器之间
【发布时间】:2020-10-19 17:18:13
【问题描述】:

在我的 angularjs 中,我有两个控制器并使用 UI 中引用的变量。从 UI 我正在调用 NumTwoController 的 OpenPage 方法,它更新 variable1 的值,而 NumOneController 尝试访问更新的值。

在我更新 NumTwoController 中的变量后,新更新的值不会反映在 NumOneController 和 NumOne.html 页面中。

myModule.controller('NumOneController', ['$rootScope', '$scope', 
    function ($rootScope, $scope) {
        $scope.variable1 = 1; // initial value assigned
        
        $scope.$on('NumOne', function (e, opt) {
            var valueselected = $scope.variable1; //still 1 is assigned.trying to read the value assigned in NumTwoController
        });
    }
    ]);


myModule.controller('NumTwoController', ['$rootScope', '$scope', 
    function ($rootScope, $scope) {
        $scope.variable1 = [];
        
        $scope.OpenPage = function (menuItem, PageReload){
            $scope.variable1 = 2;       
        });
    }
    ]);

我尝试添加 $scope.$apply() 但没有成功。

非常感谢在另一个控制器中反映更新值的指导

【问题讨论】:

  • 用户服务在控制器之间共享数据。

标签: angularjs angularjs-scope angularjs-controlleras


【解决方案1】:

您不能直接将一个控制器的范围变量访问到另一个控制器。 您可以使用 broadcaston 功能或 angular service 在两个控制器之间共享范围。

看看这个 =>

Share data between AngularJS controllers

https://benohead.com/blog/2016/07/18/angularjs-sharing-data-controllers/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多