gpt4 book ai didi

javascript - Angular.js 中主模块 $scope 中的调用函数

转载 作者:行者123 更新时间:2023-12-02 14:56:34 25 4
gpt4 key购买 nike

我有一个 Angular.js 项目,主模块定义如下:

var app = angular.module('app', [ /* Some libraries... */
'UserControllers' ]);

主模块有一个 Controller 定义如下:

app.controller('MainController', function($scope, $location) {
var UserId = null;
var Username = null;

$scope.setUserInfo = function(userId, username) {
UserId = userId;
Username = username;
};
}

在网站的主页中,用户可以加载外部登录表单并将其加载到如下所示的模式中:

    function showModal($uibModal, $previousState) {
$previousState.memo("modalInvoker");
var stateName = this.name;
var templateUrl = this.templateUrl;
$uibModal.open({
templateUrl: templateUrl,
controller: function ($uibModalInstance, $scope) {
var isopen = true;
$uibModalInstance.result.finally(function() {
isopen = false;
$previousState.go("modalInvoker");
});
$scope.close = function () {
$uibModalInstance.dismiss('close');
};
$scope.$on("$stateChangeStart", function(evt, toState) {
if(!toState.$$state().includes[stateName]) {
$uibModalInstance.dismiss('close');
}
});
}
});
}

加载页面中的表单使用主页中加载的文件中定义的 Controller ,如下所示:

(function() {
"use strict";

var login = angular.module("UserControllers", [ ]);
login.controller("LoginCtrl", function($http, $scope) {
/* Login checks and requests... */
/* Need to call the setUserInfo */
}
}();

完成所有登录检查后,我基本上需要调用主模块/页面范围中定义的函数 setUserInfo。我可以通过调用 $scope.$parent.close() 来关闭模式,但无法调用 setUserData,因为它似乎在另一个范围内。

预先非常感谢您的帮助。

最佳答案

使用 rootScope 来存储用户数据:

app.controller('MainController', function($scope, $rootScope, $location) {
var UserId = null;
var Username = null;

$rootScope.setUserInfo = function(userId, username) {
UserId = userId;
Username = username;
};
}

(function() {
"use strict";

var login = angular.module("UserControllers", [ ]);
login.controller("LoginCtrl", function($http, $scope, $rootScope) {
/* Login checks and requests... */
$rootScope.setUserInfo(uid, un); //...
}
}();

关于javascript - Angular.js 中主模块 $scope 中的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758232/

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