Javascript 如何从组件中的sendAction方法获取返回状态
我没有使用余烬数据(我不知道它是否解决了问题)。我有一个组件,单击该按钮将调用控制器中定义的外部事件处理程序。我想通过Javascript 如何从组件中的sendAction方法获取返回状态,javascript,ember.js,Javascript,Ember.js,我没有使用余烬数据(我不知道它是否解决了问题)。我有一个组件,单击该按钮将调用控制器中定义的外部事件处理程序。我想通过sendAction方法了解返回状态。详见下图 在文本区域中输入文本 单击“BTN保存” 在索引控制器中处理操作 在btnPressedactions对象中执行ajax请求 我的问题如何从步骤(4)通知组件返回状态 一旦知道请求状态,我就可以在组件中执行相应的操作 谢谢看完这篇文章 为了解决这个问题,我将控制器中的AJAX代码移动到组件中 actionBtnPresse
sendAction
方法了解返回状态。详见下图
索引
控制器中处理操作btnPressed
actions对象中执行ajax请求 actionBtnPressed() {
const card = {
front: this.get('cardFront'),
back: this.get('cardBack'),
tags: this.get('tags')
};
if (this._validateCardFront()) {
this.get('ajax').createCard(card)
.done((data) => {
this._cleanInputs();
})
.fail((err) => {
});
}
}
ajax
是一种注入组件的服务。阅读文章后
为了解决这个问题,我将控制器中的AJAX代码移动到组件中
actionBtnPressed() {
const card = {
front: this.get('cardFront'),
back: this.get('cardBack'),
tags: this.get('tags')
};
if (this._validateCardFront()) {
this.get('ajax').createCard(card)
.done((data) => {
this._cleanInputs();
})
.fail((err) => {
});
}
}
ajax
是一种注入到组件中的服务。如果使用旧的操作处理机制(使用sendAction()),则无法获得操作的返回值,您需要的是关闭操作。使用闭包动作,您可以直接在组件中调用控制器中定义的动作,并从中获得返回值。
下面是使用闭包操作的示例
index.hbs
{{note-editor btnPressed=(action 'btnPressed')}}
在note-editor.hbs中
<button onclick={{action 'actionBtnPressed'}}>Save</button>
您可以在这里阅读更多有关闭包操作的信息。
如果使用旧的操作处理机制(使用sendAction()),则无法获得操作的返回值,您需要的是闭包操作。使用闭包动作,您可以直接在组件中调用控制器中定义的动作,并从中获得返回值。 下面是使用闭包操作的示例
index.hbs
{{note-editor btnPressed=(action 'btnPressed')}}
在note-editor.hbs中
<button onclick={{action 'actionBtnPressed'}}>Save</button>
您可以在这里阅读更多有关闭包操作的信息。