【发布时间】:2018-07-16 15:30:05
【问题描述】:
我对 ember 比较陌生,我一直在尝试向 REST API 发送 POST 请求。有人可以解释一下 POST 请求是如何在 ember 中完成的吗?
【问题讨论】:
标签: rest ember.js ember-data frontend
我对 ember 比较陌生,我一直在尝试向 REST API 发送 POST 请求。有人可以解释一下 POST 请求是如何在 ember 中完成的吗?
【问题讨论】:
标签: rest ember.js ember-data frontend
您可以使用 ajax 进行 REST api 调用
$.ajax({ 类型:“POST”, 网址:“[postURL]”, 异步:假, 数据:{[您需要发送的数据]} 成功:功能(数据){ 控制台.log(数据); } });这里是示例代码。试试这个 https://ember-twiddle.com/e4ebddc075da81462224152fc770b983?openFiles=components.form-submit.js%2C
【讨论】:
这取决于您要使用 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。
【讨论】:
DS.Model。 Ember 核心没有模型类,因为它没有 ORM。在没有模型的情况下构建一个 ember 应用程序是完全可以的——但我同意这对于大多数用例来说不是最好的主意,因为如果你要完成比在路由的 model 钩子中获取数据更复杂的任务,你必须重新发明轮子。
如果您只想发出POST 请求,我可能不会担心 Ember Data。
我只会依靠“普通”浏览器 API 来发出网络请求。如今,最简单的方法是使用fetch API。
有一个名为ember-fetch 的方便的 Ember 插件,它将包装浏览器提供的功能并使其与 Ember 一起玩得更好。您可以通过执行安装它
ember install ember-fetch
安装完成后,您可以从该模块导入fetch 函数并前往城镇!
在 Ember 组件中使用它的简单示例可能类似于我制作的 Twiddle。
请注意,虽然代码正确,但 POST 会失败,因为它实际上并没有转到真正的 API。
【讨论】: