gpt4 book ai didi

javascript - 如何在 Angular JS 中检索它定义的函数之外的 $scope 值

转载 作者:行者123 更新时间:2023-11-28 03:16:31 26 4
gpt4 key购买 nike

我有 Controller

function loginController($scope, $http, $cookieStore, $location) {
var token = $cookieStore.get('token');
var conId = $cookieStore.get('Cont_Id');
var exId = $cookieStore.get('ex_Id');
$scope.log_me = function() {
$scope.login_me = [];
var login_un = $scope.uservals;
var login_pwd = $scope.passvals;
var logs_me = "api call here";
$http.get(logs_me)
.success(function(response) {
$cookieStore.put('token', response.token);
$cookieStore.put('ex_Id', response.ExId);
$cookieStore.put('Cont_Id', response.contactId);
$cookieStore.put('email', response.email);
$cookieStore.put('name', response.name);
$scope.log_sess = response;
$scope.sess_id= response.ss_id;
alert($scope.sess_id);
if (response.status == "failure, invalid username or password") {
$('.login_error').show();
$('.login_error').html('Invalid username or password');
$('.login_error').delay(4000).fadeOut();
$('.loading').hide();
} else {
$location.path('/dashboard');
}
});
}

我在我的登录页面中使用了上面的 Controller 并且它工作正常。现在我想在另一个模板中使用相同的 Controller 并检索值“$scope.sess_id”

我的模板是

 <div class="page" >
<style>
#report_loader object {
width: 100%;
min-height: 700px;
width:100%;
height:100%;
}
</style>
<div class="loading"> </div>
<section class="panel panel-default" data-ng-controller="loginController">
<div class="panel-body" style=" position: relative;">
<div id="report_loader" style="min-height:600px;">
{{sess_id}}
<script type="text/javascript">
$("#report_loader").html('<object data="https://sampleurl/contact/reports/members/sorted_list.html?ss_id=' + sess_id+' />');
</script>
</div>
</div>
</section>
</div>

我无法在此处检索值 {{sess_id}}。应该怎么做才能将此值带入我的模板

最佳答案

您在成功登录后将用户路由到“仪表板”路由。即使您可能觉得您在登录和仪表板中使用相同的“loginController”,但它将是两者的全新实例 Controller 和 $scope。这就是 {{sess_id}} 未显示在仪表板模板上的原因。

如果您遵循类似 MVC 的 AngularJS 模式,理想情况下您希望为您的仪表板模板创建一个新的 Controller 。见说明:https://docs.angularjs.org/guide/controller#using-controllers-correctly

因此,我将创建一个 DashboardCtrl 并在两者之间共享 sess_id。有很多关于如何在 Controller 之间共享数据的示例:

希望对您有所帮助。

关于javascript - 如何在 Angular JS 中检索它定义的函数之外的 $scope 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27373957/

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