2013-10-11 36 views
2

我有兩個控制器和兩個模型。 (我的第三個,groups,但畢竟是不管在這種情況下。)我的模型,因此有關:從不同的控制器添加新的模型到Ember.js

App.Favorite = DS.Model.extend({ 
    lodge: DS.belongsTo('lodge'), 
    notes: DS.attr('string'), 
    groups: DS.hasMany('group', {async:true}), 
    photo: DS.attr('string'), 
}); 
App.Lodge = DS.Model.extend({ 
    name: DS.attr('string'), 
    address: DS.attr('string'), 
    website: DS.attr('string'), 
    phone: DS.attr('string'), 
    uniqueDescription: DS.attr('string'), 
    basicDescription: DS.attr('string'), 
    yearOpened: DS.attr('string'), 
    propertySize: DS.attr('string'), 
    propertyType: DS.attr('string'), 
    languages: DS.attr('string'), 
    owner: DS.attr('string'), 
    uniqueQualifier1: DS.attr('string'), 
    uniqueQualifier2: DS.attr('string'), 
    uniqueQualifier3: DS.attr('string'), 
    uniqueQualifier4: DS.attr('string'), 
    lowDayPrice: DS.attr('string'), 
    highDayPrice: DS.attr('string'), 
    favoriteBoolean: DS.attr('boolean') 
}); 

從我lodge模板中,我試圖「分配」特定的小屋是最喜歡的。那麼我怎麼能從lodge控制器中爲它的模型添加一個新的favorite記錄?就我所知,Ember指南和API似乎沒有這個用例。

樣品小屋控制器:

App.LodgeController = Ember.ObjectController.extend({ 
    actions: { 
     createFavorite: function() { 
      // Not sure what to do here 
      // 
      // Create new record 
      // 
      // Then transition to newly created record route 
     } 
    } 
}); 

路線:

App.Router.map(function() { 
    this.resource('groups', { path: '/groups' }); 
    this.resource('group', {path: '/group/:group_id'}); 
    this.resource('favorites', {path: '/favorites'}); 
    this.resource('lodges', {path: '/'}); 
    this.resource('favorite', {path:'/favorite/:favorite_id'}) 
}); 

回答

0

我想你應該能夠做這樣的事情在你的createFavorite功能:

var lodge = this.get('content'); 
var fav = this.store.createRecord('farvorite',{ lodge : lodge }); 
var _this = this; // Inside didCreate 'this' will point to something different 
fav.on('didCreate',function(){ 
    _this.transitionToRoute('favorite',fav); 
}); 
fav.save(); 
相關問題