【问题标题】:How do I send details from the form to a rest API in ember.js?如何将表单中的详细信息发送到 ember.js 中的 rest API?
【发布时间】:2018-07-16 15:30:05
【问题描述】:

我对 ember 比较陌生,我一直在尝试向 REST API 发送 POST 请求。有人可以解释一下 POST 请求是如何在 ember 中完成的吗?

【问题讨论】:

    标签: rest ember.js ember-data frontend


    【解决方案1】:

    您可以使用 ajax 进行 REST api 调用

    $.ajax({ 类型:“POST”, 网址:“[postURL]”, 异步:假, 数据:{[您需要发送的数据]} 成功:功能(数据){ 控制台.log(数据); } });

    这里是示例代码。试试这个 https://ember-twiddle.com/e4ebddc075da81462224152fc770b983?openFiles=components.form-submit.js%2C

    【讨论】:

      【解决方案2】:

      这取决于您要使用 Ember 的哪些部分。 Ember.js 的主要支柱之一是 Ember 数据库,它与 Ember 模型密切合作,您可以阅读有关 here 的信息。如果您决定不使用 Ember Data(我认为大多数人不会推荐,但最终取决于您),您可以手动填充您的模型,使用通过 ajax 发出的 API 请求并使用其响应数据设置模型属性。

      如果你想为你的 API 请求使用 Ember Data,你需要使用一个 API 适配器,它可以让你使用 Ember Data 方法来查询你的模型的 API,这样你就可以编写像store.findRecord('book', bookId); 这样的代码,其中 API 调用由适配器自动处理,缓存/存储由 Ember Data 处理。

      您可以阅读有关适配器 here 的信息,并且可能应该只阅读有关模型的整个部分,以了解更多关于它们如何工作的信息,是否以及如何在您的应用程序中使用 Ember Data。

      【讨论】:

      • Ember Data 不仅与 Models 密切合作,而且还带来了 Model 类DS.Model。 Ember 核心没有模型类,因为它没有 ORM。在没有模型的情况下构建一个 ember 应用程序是完全可以的——但我同意这对于大多数用例来说不是最好的主意,因为如果你要完成比在路由的 model 钩子中获取数据更复杂的任务,你必须重新发明轮子。
      【解决方案3】:

      如果您只想发出POST 请求,我可能不会担心 Ember Data。

      我只会依靠“普通”浏览器 API 来发出网络请求。如今,最简单的方法是使用fetch API。

      有一个名为ember-fetch 的方便的 Ember 插件,它将包装浏览器提供的功能并使其与 Ember 一起玩得更好。您可以通过执行安装它

      ember install ember-fetch
      

      安装完成后,您可以从该模块导入fetch 函数并前往城镇!

      在 Ember 组件中使用它的简单示例可能类似于我制作的 Twiddle。

      https://ember-twiddle.com/2511bf1b2409da2b7ff33d88fb12552e?openFiles=components.some-submitting-component.js%2Ctemplates.components.some-submitting-component.hbs

      请注意,虽然代码正确,但 POST 会失败,因为它实际上并没有转到真正的 API。

      【讨论】:

        猜你喜欢
        • 2018-07-06
        • 2017-10-30
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-29
        相关资源
        最近更新 更多