gpt4 book ai didi

ember.js - emberjs - 向 Ember.Service 添加操作

转载 作者:行者123 更新时间:2023-12-02 05:55:17 25 4
gpt4 key购买 nike

我正在尝试向 Ember 1.10 中的 Ember.Service 添加操作,但我不得不将 _actions 别名添加到 actions 哈希中以使其正常工作,我我错过了什么?

export default Ember.Service.extend(Ember.ActionHandler, {
actions:{
addItem: function(label) {
console.log(label);
}
},

setup: Ember.on('init', function(){
this._actions = this.actions;
})
});

查看 ember 源代码,triggerEvent 方法查询 _actions 哈希:

if (handler._actions && handler._actions[name]) {
if (handler._actions[name].apply(handler, args) === true) {
eventWasHandled = true;
} else {
return;
}
}

我想我错过了什么。

最佳答案

Action 从模板冒泡到 View ,然后是 Controller ,然后通过路由。除非您手动执行 myService.send('someAction'),否则任何操作都不会到达服务。

使用服务方法代替服务操作。

只需在服务上声明一个方法,然后在 Controller 中执行,例如:

  myService: Ember.inject.service(),
actions: {
someAction: function(arg) {
this.get('myService').someMethod(arg);
}
}

关于ember.js - emberjs - 向 Ember.Service 添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913441/

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