【问题标题】:Migrating app to AngularJS?将应用程序迁移到 AngularJS?
【发布时间】:2015-04-05 05:09:06
【问题描述】:

我有现有的 Web 应用程序,其中大部分时间页面都是以传统方式提交的(例如 document.form.submit 或) 我计划迁移到 angularJS,我是 learning我不确定我们如何使用 angularJS 以传统方式(没有 ajax)提交表单? 我知道这不会是真正的单页应用程序(SPA),但对于开始我想走这条路。

将传统应用迁移到 SPA 的方法:- 将来,我想去 SPA,我将使用 AngularJS 通过 ajax 方式提交表单。我有模糊的理解 我将如何处理这个问题,但希望得到专家的建议。

我的理解:- 假设我登陆带有用于创建客户的链接的欢迎页面。我将从 WelcomeController(angularJS Controller) 调用 ajax 到我的 servlet/spring 控制器 这将返回包含 js 文件的 html 响应。 HTML 响应将包含在下面

1)HTML 将包含 routeProvide 使用的 ng-view 和 ng-template

2)其中一个 js 文件将包含 routeProvider 信息以将 ng-template 与视图映射

如果这是正确的方法,请纠正我?

【问题讨论】:

    标签: java angularjs web-applications single-page-application


    【解决方案1】:

    使用 AngularJS 进行数据绑定和表单验证。当你要提交表单时,可以依赖jQuery:

    <div ng-controller="ctrl">
         <form id="myform" name="myform">
            Name: <input type="text" ng-model="person.name" name="person.name" /> <br />
            <button ng-click="submit(person)">Submit</button>
         </form>
    </div>
    

    脚本

    app.controller('ctrl', function($scope) {
         $scope.submit = function(person) {
             if ($scope.myform.$valid) {
                 $('#myform').submit();
             }
         }
    });
    

    为此,请确保为输入字段提供适当范围的名称,以便它绑定到您的 MVC 模型。

    这种方法确实有其局限性。例如,使用 ngModel 的输入字段不应有任何 $formatters/$parsers 限制您使用简单格式。

    【讨论】:

    • 感谢像素位。我想知道angularJS是否也提供了这个(否则jquery总是如你所说)。
    • 不,AngularJS 不支持传统的非 ajax 请求。
    • 感谢像素位。关于方法,是否有任何好的替代方法或其他方法?
    • 如果你打算采用 ajax,那么使用 Angular 的 $http 服务是最好的选择。
    • 是的,我同意 ajax。但是我的主要困惑是如何在单页中包含(不同jsp页面的)html响应?例如:- 现在我以传统方式提交表单并导航到所需的页面。但我试图以正确的方式如何包含各种用户事件的 ajax 响应(而不是传统提交的响应)?
    【解决方案2】:

    我一直在寻找 Single Page App with AngularJS,它描述了如何使用 AngularJS(具有路由器、控制器、服务等功能)以清晰简洁的方式拥有完整的 SPA Web 应用程序

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 2015-11-17
      • 1970-01-01
      • 2013-05-03
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多