无法创建新记录

时间:2014-10-18 03:17:14

标签: javascript ember.js ember-data

我一直在努力让这项工作无数个小时。我无法在网上找到我能理解的答案。像我这样的其他初学者也可能遇到同样的问题,所以我发布了我的问题:

我的Ember应用中出现此错误: 未捕获错误:断言失败:您只能在此关系中添加“用户”记录

我正在尝试创建“Cond”的新记录。但是我无法将'user'对象添加到新创建的Cond实例的user属性中。但是,从Chrome调试工具,我可以看到'user'不是null或未定义。这是崩溃的控制器:

    App.BookController = Ember.Controller.extend({
      needs: 'user',
      user: Ember.computed.alias("controllers.user"),

      frequency: ['Every Minute', 'Every Hour', 'Every Day', 'Every Week', 'Every Month', 'Every Quarter', 'Every Year', 'Continuous'],
      selectedFrequency: 'Every Month',

      actions: {
        createCond: function() {

          var user = this.get('user');

          var Cond = this.store.createRecord('Cond', {
            name: this.get('name'),
            frequency: this.get('selectedFrequency'),
            description: this.get('description'),
            createdDate: new Date(),
          });

          Cond.set('user', user);  // Application crash her
          user.addObject('Conds', Cond);

          Cond.save().then(function() {  
            user.save();
            console.log('new Cond created');
          });
        }
      }

    });

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您抓取用户控制器,该模型是控制器上的属性。

将别名更改为:

user: Ember.computed.alias("controllers.user.model"),

或将您的获取更改为:

var user = this.get('user.model');