gpt4 book ai didi

ruby-on-rails - EmberJS 使用 ember-ajax 向 Rails API 服务器发出 HTTP Post 请求

转载 作者:行者123 更新时间:2023-12-04 06:12:40 25 4
gpt4 key购买 nike

所以我有一个 Rails API 和一个 Ember 应用程序。目前,我的 Ember 有一个 login.hbs 模板和一个 login.js Controller 。

我已经完成了 ember install ember-ajax ( https://github.com/ember-cli/ember-ajax )。

输入电子邮件和密码后,我单击调用我的 login.js 操作的登录按钮 loginClicked()

我的登录 Controller 中有以下内容:

// login.js controller
import Ember from 'ember';

export default Ember.Controller.extend({
email: '',
password: '',

actions: {
loginClicked() {
// alert("email: " + this.get('email') + "\npassword: " + this.get('password'));

let params = {
email: this.get('email'),
password: this.get('password')
};

post('/authenticate', {
params: params
});
}
}
});

在我的 login.js 路由处理程序中,我注入(inject)了 ember-ajax 服务:

// login.js route handler
import Ember from 'ember';

export default Ember.Route.extend({
ajax: Ember.inject.service()
});

问题是,我的 Mac 终端控制台正在输出一条错误消息:

controllers/login.js: line 16, col 7, 'post' is not defined.

我也尝试过将 ember-ajax 服务注入(inject)到我的 Controller 中,但没有任何区别。

我做错了什么吗?

最佳答案

在 ember-ajax github 页面中描述了所有内容 https://github.com/ember-cli/ember-ajax

export default Ember.Controller.extend({
ajax: Ember.inject.service(),

actions: {
loginClicked() {
let params = {
email: this.get('email'),
password: this.get('password')
};

return this.get('ajax').request('/authenticate', {
method: 'POST',
data: params
});
}
}
});

基本上,要在 ember 中访问 Controller (组件,...)的任何属性,您需要使用 this.get('propertyName') 获取它。这里需要使用ajax属性(注入(inject)服务)的request方法。

关于ruby-on-rails - EmberJS 使用 ember-ajax 向 Rails API 服务器发出 HTTP Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com