【问题标题】:angularjs : trying to display a template when page submitedangularjs:尝试在提交页面时显示模板
【发布时间】:2013-11-11 10:55:28
【问题描述】:

我有一个表单,提交时会在 WelcomeController 中调用“ng-submit="submit()”函数。

在这里我发出一个 ajax 请求并检查是否有一个状态等于成功。 ajax 调用完成后,数据库中的状态可能不会更新。所以我设置了一个 settimeout 来调用,每 6 秒一次又一次地发出 ajax 请求,直到我们获得成功的状态。我想要的是在这段检查时间内加载另一个模板。

这是代码。

app.controller('WelcomeController', function($http,$scope,$location){
   $scope.email="abcd@test.com";


    $scope.submit = function(){
        //some way to set a new template
        $http({
            method: "POST",
            url: 'check',
            data: {email: $scope.email},
       }).success(function(data){
         if(data=="mailreceived"){
                //redirect to another page
               window.location.assign("./score");
         }else{
             //rcheck again if the status is set
             setTimeout( $scope.submit, 6000 );
              return false;
         }
       });  
     }
})

【问题讨论】:

  • 逻辑似乎很模糊......为什么第一个请求不会返回您的成功消息?似乎您希望在error 回调中重新提交。如果用户离线但是连续循环如果在error回调中使用它将无限期地继续
  • 我已将其从成功更改为收到邮件,基本上该应用程序正在尝试检查是否收到了带有发布电子邮件 ID 的邮件。有时邮件可能会延迟。因此,我们不是要求用户重新发布它,而是使用 settimeout 进行操作,并且在重新检查期间我必须显示另一个模板。

标签: angularjs laravel-4


【解决方案1】:

这里有什么问题?它不会重定向你?

您尝试过使用AngularJS location

【讨论】:

  • 它正在重定向.....基本上,该应用程序正在发出 ajax 请求并尝试检查是否收到带有已发布电子邮件 ID 的邮件。有时邮件可能会延迟。因此,我们没有要求用户重新发布它,而是使用 settimeout 进行操作,并且在重新检查期间我必须显示另一个模板..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多