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

在AngularJs单页应用程序中发布请求

仇睿
2023-03-14
问题内容

我正在Spring MVC和AngularJS中构建一个单页应用程序。我有一个header-footer-sidebar和ng-
view部分,其中所有页面都由Ajax使用routeProvider加载。事实是routeProvider 仅适用于GET请求
,这意味着我无法传递任何参数。( 我不想在url中传递所有表单数据 )我想使用 Ajax POST请求 提交表单,同时更改ng-
view内容。使用Angular routeProvider可以做到吗?

到目前为止,我已经想到的解决方案是发布表单数据,接收成功消息,然后更改url的哈希值,以便向服务器请求新页面的新请求。但是,此解决方案的缺点是,我只想执行一个请求,却对服务器执行了两个请求。

谢谢


问题答案:

首先,您必须意识到routeProviders可以在您的应用程序内部更改路由,而不是将数据传递给服务器。使用服务或工厂将数据传递到服务器,然后从那里返回响应页面。这是一个简单的例子

形成:-

<form name="empForm" ng-controller="insertEmpCtrl" ng-submit="insertEmp()">
name: <input type="text" class="form-control" name="lname" ng-model="formData.lname"/>
<input type="submit" value="Save" />

路由:-

myApp.config(function($routeProvider){
$routeProvider
    .when('/',{
        templateUrl : '/your/project/root.html',
        controller : 'controler1'
    })
    .when('/page',{
        templateUrl : '/your/project/page.html',
        controller : 'controler2'
    });
});

厂:-

myApp.factory('factoryname', function(){
return{
    insertData: function($scope,$http){
        var json_data = JSON.stringify($scope.formData);


        $http.post(url, json_data, {
            withCredentials: true,
            headers: {'Content-Type': 'application/json'},
            transformRequest: angular.identity
        }).success(function(){
            console.log("done");
        }).error(function(){
            console.log("error");
        });
    }
}
});

控制器:-

myApp.controller('controller1',['$scope','$http','$rootScope','factoryname',function($scope,$http,$rootScope,factoryname){

$scope.insertEmp = function(){

    $scope.formFactory = factoryname.insertData($scope,$http);

};
}]);

弹簧控制器:

@RequestMapping(value="/aurlPattern",method = RequestMethod.POST)
public String insertmethod(@RequestBody  FormModelObject FormModelObject) {

    //do something


    return "responsePage";
}


 类似资料:
  • 问题内容: 我有一个使用angularJS的单页Web应用程序。我需要打印某个页面的div。我尝试了以下方法: 该页面包含少量div(print.html) 控制器具有以下脚本: 此代码可打印所需的div,但存在问题。该语句代替了整个应用程序的主体,因为它是SPA。因此,当我刷新页面或再次单击“打印”按钮时,页面的全部内容将被删除。 问题答案:

  • 问题内容: 我们正在寻找构建正在创建的应用程序前端的选项,并正在尝试评估一种对我们有用的工具,并为我们提供前进的最佳平台。 这是一个Node.js项目。我们最初的计划是使用Express并沿这条路线走,但是我们决定在开始此阶段之前,最好回顾一下那里的内容。我们的应用程序有几个我们认为不适合单页模型的领域,因为它们是从应用程序的角度关联的,而不是从一个角度来看的。 我们已经看到了一些可用于构建客户端

  • 问题内容: 因此,我有一个应用程序(facebook应用程序实体),并且有一个页面。我想通过Java代码(通过restfb或任何其他建议)使用该应用发布到页面。似乎我错过了页面授予应用程序发布权限的阶段。不知道该怎么做。谢谢你们。友利 问题答案: 您只能发布“作为页面”,而不能发布“作为应用”。您需要页面访问令牌,并且需要使用/ page-id / feed端点进行发布。链接与信息和示例代码: h

  • 问题内容: 当我学到角度时,有两个问题困扰着我: 当用户刷新页面或点击后退按钮时,如何恢复状态? 如何在属于不同控制器的合并范围之间共享数据? 下面我展示了一个使用客户端会话存储的简单解决方案。在用户刷新页面或点击后退按钮后,它既允许共享公共数据,又可以自动恢复状态。 注意:事实证明,以下解决方案对于回答以下问题至关重要: 如何获得“后退”按钮以与AngularJSui路由器状态机一起使用? 问题

  • 问题内容: 我对Yii 2和AngularJS都有经验,但分别是。我有两个问题: 在Yii 2的视图中 可以使用 AngularJS 吗?我问 可能 的替代 是可行的 ,因为我觉得这个问题可以在路由到了。 另外,将Yii 2和AngularJS一起使用是否对性能来说足够公平?(两者都是MVC,因此都是模块化,可管理的代码。) 我搜索了很长时间,但是找不到任何合适的资源。有什么解释! 问题答案: 是

  • 问题内容: 我想知道如何在单个页面应用程序中使用多个控制器。我试图找出答案,但发现的问题与我的非常相似,但是有很多不同的答案可以解决一个特定的问题,最终您不会在单个页面应用程序中使用多个控制器。 那是因为在单个页面上使用多个控制器并不明智吗?还是只是不可能? 假设我已经在主页上有一个踢屁股图像轮播控制器,但是随后我学习了如何(比如说)使用模态,为此我还需要一个新的控制器(或者其他我需要控制器的东西

  • 问题内容: 我是AngularJS的新手,并仔细阅读了他们的教程,并对此有所了解。 我为我的项目准备了一个后端,每个端点都需要进行身份验证。 我想做什么 a。)我想为我的项目准备一个页面。 b。)用户在浏览器中单击URL后,根据用户是否登录,将在同一URL下向他显示主页/视图或登录页面/视图。 c。)如果用户未登录,则填写该表单,服务器将设置一个in会话,因此将根据以下身份验证对端点的所有其他请求

  • 我是AngularJS的新手,通过了他们的教程并对其有了感觉。 我为我的项目准备了一个后端,其中每个<code>REST<code>endpoint都需要进行身份验证。 我想做什么< br> a .)我想为我的项目< code > http://my project . com 创建一个单独的页面。< br> b .)一旦用户点击浏览器中的URL,根据用户是否登录,他将在同一URL < code