当前位置: 首页 > 面试题库 >

在Angular中,如何使用$ location.path作为$ http.post成功回调进行重定向

魏彦
2023-03-14
问题内容

我正在尝试通过将Post发送到php文件来提供简单的身份验证服务,我需要它ng-view在成功时将主页部分加载到我的主页上。

这是我尝试的:

function loginCtrl($scope, $http, $location){
    $http.post(url,data).success(function(data){
        $location.path('/home');
    });
}

结果我的网址发生了变化,但ng-view没有更新。当我手动刷新页面时,它会更新。

路由已在处进行了正确配置$routeProvider,我已经测试了使用独立功能(而不是作为回调)将其重定向)

我也尝试过定义$location.path('/home')为一个函数,然后在回调中调用它仍然不起作用。

我进行了一些研究,发现一些文章指出使用其他第三方插件时会发生这种情况,我仅加载angular.js

任何对某些学习材料的见解或指导都是很棒的


问题答案:

这是本文http://www.yearofmoo.com/2012/10/more-angularjs-magic-to-supercharge-
your-webapp.html#apply-digest-and-
phase

的changeLocation示例

//be sure to inject $scope and $location
var changeLocation = function(url, forceReload) {
  $scope = $scope || angular.element(document).scope();
  if(forceReload || $scope.$$phase) {
    window.location = url;
  }
  else {
    //only use this if you want to replace the history stack
    //$location.path(url).replace();

    //this this if you want to change the URL and add it to the history stack
    $location.path(url);
    $scope.$apply();
  }
};


 类似资料:
  • 我试图通过AngularJS使用返回JSON的$http.post进行Web2.0 API调用,尽管这听起来很奇怪,但它在一个小时前工作过,现在不工作了,而且我没有做任何改变。该应用程序在所有其他浏览器中继续工作,只是在Edge中失败了。 编辑:忘了提到-当Fiddler打开并捕获流量时,应用程序可以工作。那是最奇怪的部分。

  • 问题内容: 如何使用JavaScript从另一个页面重定向到页面? 问题答案: 要重定向到另一个页面,可以使用:

  • 问题内容: 在我的应用程序中,当用户登录时,我具有此逻辑,它将使用用户拥有的所有符号调用以下方法。 我的问题是,由于此发送符号的任务可以缓慢完成,但必须完成,所以无论如何,我可以将其作为后台任务吗? 这可能吗 ?? 请分享您的意见。 问题答案: 您正在寻找类似这样的东西。 创建执行程序服务。这将保留线程池以供重用。与每次为每个异步方法调用创建一个新线程相比,效率要高得多。 如果您需要对Execut

  • 问题内容: 我想像在常规j​​Query中那样指定。Angular.js有可能吗? 问题答案: 来自http://docs.angularjs.org/api/ng.$http 转换请求和响应可以使用转换函数来转换请求和响应。默认情况下,Angular应用以下转换: 请求转换: 如果请求配置对象的data属性包含一个对象,则将其序列化为JSON格式。响应转换: 如果检测到XSRF前缀,则将其剥离(

  • 本文向大家介绍如何使用jQuery进行页面重定向?,包括了如何使用jQuery进行页面重定向?的使用技巧和注意事项,需要的朋友参考一下 要重定向到jQuery中的另一个网页,请使用。您可以尝试运行以下代码以重定向到另一个网页- 示例

  • 问题内容: 我正在使用Flask作为后端,并使用jQuery作为我正在从事的个人项目。 要登录,我想这样做: 在中,我会告诉用户其用户名或密码不正确,等等。 在后端,我的/ login路由如下所示 但是在客户端,浏览器不会重定向,如果我在完整功能中查看响应对象,我会看到通常从我的“ /”路由返回的内容:200 OK和index.html模板。 我的问题是: 有什么方法可以拦截客户端重定向? 我认为