gpt4 book ai didi

ember.js - emberjs 使用 "needs"但其他 Controller 模型为空

转载 作者:行者123 更新时间:2023-12-04 19:07:50 25 4
gpt4 key购买 nike

如何在不先进入路线的情况下加载模型?

App.UsersRoute = Em.Route.extend({
model: function() {
return ['bob', 'sue', 'tom'];
},

setupController: function(controller, model) {
controller.set('model', model);
}
});

从另一个 Controller 使用
needs: "users"


this.get('controllers.users.content');

只要我先访问 UsersRoute 就可以正常工作。

最佳答案

将它加载到需要它的最上面的路由中,因此:

App.SomeOtherRoute = Em.Route.extend({
setupController: function(controller, model) {
controller.set('model', model);
this.controllerFor('user').set('model', ['bob', 'sue', 'tom']);
}
});

请注意,如果您使用 ember-data 或 epf 或 ajax,该模型将是一个 promise 。您不能将 Controller 上的模型设置为 promise ,因此您可以这样做:
  setupController: function(controller, model) {
controller.set('model', model);
return this.get('store').findAll('user').then(function(users) {
this.controllerFor('users').set('model', users);
});
}

请注意,在第二个中我使用的是 UsersController,而不是 UserController,因为您似乎想要一组用户而不是单个用户。

关于ember.js - emberjs 使用 "needs"但其他 Controller 模型为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111965/

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