没有处理即时事件的动作-烬
Nothing handles action on immediate event - Ember
我遇到了这个问题,看看
http://jsbin.com/rarubesuxutu/1/edit?html, css, js
我正试图在init之后发送一个事件,但事件没有得到处理。相反,这个动作会出错。为什么恩伯要这样处理?什么时候可以发送事件?有没有回调让我可以设置观察者?
谢谢!
好了,我算出来了。我误解了回调的顺序。
这是我的更新版本。虽然它不是固定的,但它有助于理解路由和控制器初始化的顺序。IndexController
init在路由setupController
之前被调用。在路由设置之前触发事件。
我不确定为什么你想在init之后发送一个动作,因为你应该能够在setupController或控制器init阶段定义所有变量,所以我将向你展示我将如何去做。JSBIN
实际上你能做的是在控制器的init中,你可以这样做:
theTruth: false,
setTheTruth: function(){
this.set('theTruth', true);
}.on('init'),
然后你可以有一个观察者来监视这个变量的变化,像这样:
truthChanged:function(){
console.log("TRUTH HAS CHANGED");
}.observes('this.theTruth'),
理想情况下,您可以通过利用路由setupController函数(如soJSBIN
)来放弃所有这些setupController: function(controller, model) {
controller.set('model', model);
controller.set('theTruth', true);
},
这样你甚至不用处理init事件中的任何事情。然而,假设您有一个要求,使您必须对init事件做任何事情,您应该将您的观察者从。on('init')事件中分离出来,并让它们单独共存。让我知道这是否适合你。
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- dropdown.js中的复杂事件处理
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 复选框,然后单击事件处理
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- 带有参数的Javascript事件处理程序
- Jquery事件处理程序仅适用于匿名函数
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 如何在 JavaScript 代码中调试点击事件处理
- 如何在jQuery事件处理程序中存储和重用超时
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 异步处理所有事件处理程序的方法