如何在 Ember 控制器中运行操作 afterRender
Posted
技术标签:
【中文标题】如何在 Ember 控制器中运行操作 afterRender【英文标题】:How to run action in Ember Controller afterRender 【发布时间】:2015-09-02 06:12:33 【问题描述】:我是 ember 框架的新手。我只想在渲染完成后执行一个在动作钩子中定义的函数。
var Controller = Ember.Controller.extend(
actions:
foo: function()
console.log("foo");
);
Ember.run.schedule("afterRender",this,function()
this.send("foo");
但上面的代码不起作用。
我只是想知道,是否可以运行foo()
afterRender?
【问题讨论】:
【参考方案1】:你可以使用init
:
App.Controller = Ember.Controller.extend(
init: function ()
this._super();
Ember.run.schedule("afterRender",this,function()
this.send("foo");
);
,
actions:
foo: function()
console.log("foo");
);
【讨论】:
解决方案可能会导致测试错误“断言失败:您已打开测试模式,这禁用了运行循环的自动运行。您需要在运行中包装任何具有异步副作用的代码”。如何绕过这个? 在测试模式下,Ember 不会自动启动运行循环。您可以通过将调度调用包装在 Ember.run() 中来显式创建运行外观,它将在测试中工作。以上是关于如何在 Ember 控制器中运行操作 afterRender的主要内容,如果未能解决你的问题,请参考以下文章
Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?