灰烬-如何仅在save()完成时插入记录

迈克尔·维伦纽夫

我有一个可以支持多种语言的应用程序。我的每个用户都有自己的一套“支持的语言”。假设我的用户支持英语,法语和西班牙语,他可以为自己的商店创建类别,并且必须输入3种语言的名称。但是,当我显示类别列表时,我只想在标签中显示所选的语言名称。

我在控制器中做了以下功能,它可以完美地工作:

App.CategoryController = Ember.ObjectController.extend({   
    needs: ['settings'],
    currentLocale: Ember.computed.alias('controllers.settings.currentLocale'),
    name: function() {
        var translations = this.get('category_translation_ids').filterBy('locale', this.get('currentLocale'));
        Ember.assert("The selected language does not exist", translations.length === 1);
        return translations[0].get('name');
    }.property('[email protected]') 
});

我的问题是当我添加新类别时:

App.CategoriesAddController = Ember.ObjectController.extend({   
    needs: ['categories', 'settings'],
    newRecord: function() {
        scope = this;
        record = this.store.createRecord( 'category', 
                                          {
                                               active: true,
                                          })
        record.save().then(function(record) {
            scope.get('controllers.settings').get('supportedLocale').forEach(function(item, index, enumerable) {
                translation = scope.get('store').createRecord( 'categoryTranslation', 
                                                {
                                                    locale: item,
                                                    name: 'Nom',
                                                    description: '',
                                                    meta_description: ''
                                                });
                record.get('category_translation_ids').pushObject(translation);
                translation.save();
            });
        });
    },
});

一旦执行“ createRecord”,便会创建我的类别,并且由于我尚未插入翻译而无法执行计算的属性“名称”。我不知道我是否做对了,因为这是我在余烬中的第一个项目。自从过去4-5个小时以来,我一直在解决这个问题,但没有取得太大的成功。任何帮助将不胜感激。

劲派2k

听起来您有一个显示所有类别的模板,并且类别的项目控制器为CategoryController大概是这样的:

{{#each category in controller}} 
  {{category.name}}
{{/each}}

我确定您正在发生的事情是,当控制器尝试在控制器上进行计算name时,它崩溃了。有几种方法可以完成此操作,一种是在类别不是新的情况下进行过滤。

{{#each category in controller}} 
  {{#unless category.isNew}}
    {{category.name}}
  {{/unless}}
{{/each}}

您也可以基于记录的状态进行过滤,尽管该状态经常更改并且存在许多不同的状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存灰烬数据记录

来自分类Dev

灰烬-如何获得ID?

来自分类Dev

灰烬:concat attributeBinding,如何?

来自分类Dev

如何找到灰烬商店

来自分类Dev

灰烬:如何强调模型

来自分类Dev

灰烬—观察记录的创建/删除

来自分类Dev

灰烬—观察记录的创建/删除

来自分类Dev

灰烬数据-当API不返回记录时如何处理

来自分类Dev

灰烬Js中的自动完成文本

来自分类Dev

灰烬数据:查找记录而非承诺

来自分类Dev

灰烬数据有重复的记录

来自分类Dev

灰烬数据始终在获取路线记录

来自分类Dev

灰烬数据:查找记录而非承诺

来自分类Dev

灰烬数据添加不必要的记录

来自分类Dev

灰烬数据-未加载相关记录

来自分类Dev

灰烬数据createRecord创建多个记录

来自分类Dev

创建动态路线时出现灰烬错误

来自分类Dev

灰烬:Promise(destroyRecord()。then())在成功请求时失败

来自分类Dev

灰烬:在达成承诺时设定财产

来自分类Dev

灰烬数据删除失败,如何回滚

来自分类Dev

如何创建灰烬车把帮手?

来自分类Dev

灰烬-如何使组件成为空标签?

来自分类Dev

如何离线使用灰烬纸图标?

来自分类Dev

如何创建灰烬车把帮手?

来自分类Dev

灰烬数据模型的ID从创建的记录如何?

来自分类Dev

灰烬,无灰烬数据

来自分类Dev

灰烬,无灰烬数据

来自分类Dev

灰烬加载模板仅在页面刷新时有效

来自分类Dev

灰烬数据-保存记录丢失有很多关系