当前位置: 首页 > 知识库问答 >
问题:

AngularJS变量问题[重复]

惠洛华
2023-03-14
var app = angular.module('app', []);


app.controller('FormLoginCtrl', function ($scope, $http, $window, $rootScope) {

$scope.form = {
    email: "",
    password: "",
};
$scope.submitForm = function() {

    $http({

        url: "http://127.0.0.1:5000/auth/login_user",
        data: JSON.stringify($scope.form),
        method: 'POST',

    }).success(function(data){

        console.log("OK", data)
        localStorage.token = data.token
        sessionStorage.token = data.token

        $http({

            url: "http://127.0.0.1:5000/auth/login_user",
            method: 'GET',
            headers: {'X-API-KEY' : data.token}
        }).then(function success(response){
            console.log(response);
            $rootScope.user = response.data;
        })

    }).error(function(err){"ERR", console.log(err)})
};

});

我的HTML表单代码;

<form name="login" ng-controller="FormLoginCtrl" ng-submit="submitForm()" id="login" class="contact-form-wrapper">

<div class="row">

    <div class="col-sm-12">

        <div class="form-group">
            <input id="inputEmail" ng-model="form.email" type="test" class="form-control" placeholder="Your Email">
            <div class="help-block with-errors"></div>
        </div>

    </div>

    <div class="col-sm-12">

            <div class="form-group">
                <input id="password" ng-model="form.password" type="text" class="form-control" placeholder="Your Password">
                <div class="help-block with-errors"></div>
            </div>

    </div>

    <div class="col-sm-12">
        <button type="submit" ng-click="Submit" class="btn btn-primary btn-sm mt-5">Login</button>
    </div>

在我的main-menu.html文件中,我试图调用变量;

<ul class="nav navbar-nav" id="responsive-menu">
    <li><a href="index.html">Write A Review</a></li>
    <li ng-hide="user"><a href="signin.html">Sign In</a></li>
    <li ng-hide="user"><a href="register.html">Register</a></li>
    <li>
    <a ng-show="user" href="category-01.html">Welcome {{ user['first_name'] }}</a>
    <ul ng-show="user">
        <li ng-show="user"><a href="agent-grid.html">My Profile</a></li>
        <li ng-show="user"><a href="agent-list.html">My Reviews</a></li>
    </ul>
    </li>
</ul>

我应该补充一下,它目前正在工作,但我知道这可能不是正确的方式。我很感激任何帮助。

共有1个答案

端木澄邈
2023-03-14

您需要将main-menu.html代码单独包装在AngularJS控制器中。

一旦获得了来自第二个API调用的数据,就向$rootscope发出一个事件。与事件一起发送从API接收的数据。

然后,您可以$rootscope事件连同API数据一起从$rootscope广播到应用程序中的其他控制器。

LoginController ---- emit ---> RootScope ---- broadcast ----> Other Controllers

您也可以考虑使用一个包含其他控制器的AppController来代替RootScope。

您可以在这里阅读更多关于发射、广播和关于https://stackoverflow.com/a/37717690/903324

稍后,您可能需要此事件用于应用程序中的其他内容。

 类似资料:
  • 我在这里看到了许多关于JAVA_HOME变量的其他帖子,我都试过了。 当我尝试从终端执行任何与分级相关的任务时,我收到以下错误: 如果运行得到和,这使我认为这其中存在问题。 我将添加到我的路径中,并将作为指向的系统变量添加进来。我错过了什么?我已经把头撞在这上面有一阵子了;如有任何帮助,将不胜感激。 编辑:我已经确认确实存在,其内容如下 斌 包括 JRE lib 人 版权所有 javafx-src

  • 当我尝试使用Shift或Refactor重命名变量时= 当我进一步研究这种行为时,我知道它只发生在公共变量中。请参阅下面的截图。我试图重命名平方变量(关键字)。下面建议了许多完全不相关的代码行来相应地重命名。 有人知道这里到底有什么问题吗?还有一个方便的解决办法? 谢谢你。

  • 我正在学习Java的易失性,我的代码是这样的。 我知道如果flag没有volatile,线程就不会存在。这是能见度的问题。 但是,如果我在while循环中编写一些代码,如,t1线程将读取新值并停止循环。 我知道如何使用volatile来解决可见性问题,所以我的问题是: 为什么当我写?

  • 为什么我能够直接访问的私有属性在的方法的实现中?似乎使用getter应该是访问它的唯一(如果不是,最好的实践)方式。我错过了什么?

  • 我已经搜索了200多个站点(可能有些夸张,但没有太多),了解如何使用angularjs处理cors。我们有一台运行web API服务器的本地计算机。我们正在开发一个客户端,该客户端调用API获取数据。从服务器运行客户机时,我们接收数据没有问题。当我们从另一个域运行它时,当我们试图获取数据时,会得到一个红色200响应和一个空白响应。下面是一些代码: 我也尝试过使用$http,但得到了相同的响应(或没

  • 问题内容: 我已经搜索了200多个站点(可能有点夸张,但幅度不大),以了解如何使用angularjs处理cors。我们有一台运行Web API服务器的本地计算机。我们正在开发一个调用API数据的客户端。从服务器运行客户端时,我们不会收到任何问题。当我们从其他域运行它时,尝试获取数据时会收到红色的200响应,而响应为空。这是一些代码: 我也使用$ http尝试过此操作,但得到的响应相同(或缺少响应)