gpt4 book ai didi

javascript - 如何从 Ember.pre4 版本中的普通类访问 Controller ?

转载 作者:行者123 更新时间:2023-12-02 19:01:09 24 4
gpt4 key购买 nike

到目前为止,我通常有一个数据源类,其中包含访问服务器、检索数据并将其放入 Controller 的所有功能,类似于:

...
App.DataSource = Ember.Object.extend({
getBooks: function(callback) {
$.ajax({
url: '/books.json',
done: function(data){
//process the data
App.get('router.booksController').set('content', processedData);
}
});
}
});

App.dataSource = App.DataSource.create();
...

但是自从发布了 4 之前的版本以来, Controller 无法再从路由器访问,并且对它们的访问似乎受到很大限制,如 this 中所述。问题。

那么根据这些变化,这不再可能了吗?推荐的方式是什么?

最佳答案

路由器有一个新方法controllerFor,它接受 Controller 实例的字符串名称。只要您可以获得对路由器的引用,您就应该能够访问由 ember 实例化/生成的 Controller 。

参见:http://emberjs.com/guides/routing/setting-up-a-controller/

您仍然可以执行诸如 App.Router.controllerFor("books") 之类的操作,尽管在表现得像模型的对象中进行硬编码并不好。

我注意到的另一件奇怪的事情是 Ember.Router 不再在网站 API 中查找文档。我认为这是因为他们将路由器的核心转移到了 Ember 扩展的独立项目或类似的项目中。

我认为这是github来源:https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/system/route.js

关于javascript - 如何从 Ember.pre4 版本中的普通类访问 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14783121/

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