【问题标题】:Ember refresh models from another controllerEmber 从另一个控制器刷新模型
【发布时间】:2016-11-17 15:40:02
【问题描述】:

我有一个 ApplicationController,当“Ember.select”更改值时,我想刷新一些模型。

App.ApplicationController = Ember.ObjectController.extend({
needs: ['abstractAuth', 'widgets', 'modalWindows', 'chatCompose', 'chatModal', 'about', 'contacts'],
selectedDomainAlias: {},
selectedDefaultValue: { Id: 2 },

onSelectedDomainAliasChange: function () {
    var self = this;
    var getSelectedDomain = this.get("selectedDomainAlias.domainName");
    $.get('/SetCookies/Cookies?domains=' + getSelectedDomain, false)
        .then(function() {
            self.send("domainChanged");
            self.get('model').reload();
            var contacts = App.controllerFor('contacts').store.find('contact');
            self.get('controllers.contacts').set('model', contacts);
        });
}.observes('selectedDomainAlias.length')});

self.send("domainChanged")self.get('model').reload() 工作正常。

我还有模型“Contact”,我应该刷新它。 App.controllerFor('contacts').store.find('contact') - 从后端接收模型。但我无法正确刷新“联系人”模型。

如果起初我在模型中有两个联系人。当我尝试为每个联系人替换这两个联系人时,此联系人添加为第三个联系人,但我只想获得一个联系人。如何正确刷新“联系人”模型?

【问题讨论】:

  • 我想知道你是从哪里学习 Ember 的。这种风格大约有两年的历史了。
  • 我是初学者。从旧项目更改 ember 中的数据
  • 如果你更新你的 ember-data 版本会很好。

标签: ember.js


【解决方案1】:

find 方法返回 Promise,所以在 then 方法中这样做。

var contacts = App.controllerFor('contacts').store.find('contact').then(function(result){
 self.get('controllers.contacts').set('model', result);
});

目前find 是私有方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多