【问题标题】:Make Call to Back-end, Multiple Path Variables, Ext Js调用后端、多路径变量、Ext Js
【发布时间】:2015-03-20 23:43:43
【问题描述】:

我有一个 RESTful 调用,我想对我的应用程序后端进行调用。前端使用 Ext JS (JavaScript) 编写,后端使用 Hibernate 使用 JAVA。该应用程序利用 MVC 设计模式。

在后端,我有一个带有“映射”的 GET 请求端点,类似于:thing/{thingOne}/otherThing/{thingTwo}

Ext JS 在他们的商店中提供了许多通过模型代理访问后端的函数:.load().save().remove()。它们中的每一个都可以为其[options] 参数采用多个参数;但是,我试图找到向我展示如何向后端 GET 端点发出多参数请求的文档,但到目前为止还没有找到。

我的假设是调用的结构类似于:.load("param1", "param2"),基于.save().remove() 的文档。这是文档。对于save,对于remove,和load

那么,如何使用多个参数对后端进行 GET 调用?我是否在正确的范围内?

【问题讨论】:

    标签: java javascript hibernate extjs


    【解决方案1】:

    您可以在代理上使用“extraparams”。

    sencha api 4.2.2 - extraparams on store

        var formOperation = [];
        var example = {"city":"Manchester"};
        Ext.Object.merge(formOperacion,example);
        store.getProxy().extraParams = formOperation;
        store.load();
    

    另一种解决方案:

    Sencha api - store - Dynamic Loading

    store.load({
        params: {
            group: 3,
            type: 'user'
        },
        callback: function(records, operation, success) {
            // do something after the load finishes
        },
        scope: this
    });
    

    【讨论】:

    • 我会阅读更多关于此的内容。在您的第一个示例中,您打算如何处理 var example
    • 抱歉,我忘记将 'example' var 添加到 'arrayOperation'。
    【解决方案2】:

    将请求的 URL 构建为连接字符串,包括参数:

    var requestUrl = 'thingOne/' + thingOneVar + '/otherThing/' + otherThingVar;
    

    请注意,您的“已构建”string 是否应以 / 为前缀取决于模型代理的配置方式。本质上,您的目标是合法的请求网址。

    并通过代理发出请求(这里,我使用的是 AJAX):

    Ext.Ajax.request({
        url : requestUrl,
        // ....
    });
    

    then 需要通过回调或作为承诺来处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2023-04-06
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多