2013-02-08 19 views
0

干杯!这里 简单的动作,我有:ember.js在为其属性设置新值后应用对象

TravelClient.TourSeatsController = Ember.ObjectController.extend({ 
    selectSeat: function(seat) { 
    // console.log(seat.get('id')); 
    // console.log(seat.get('free')); 
    seat.set('free', false); 
    TravelClient.Seat.apply(seat); 
    // console.log(seat.get('free')); 
    } 
}); 

我的html:

 {{#each seat in controller.seatsArray}} 
     <li class="item"> 
      {{#if seat.free}} 
      <div class="counter-value"> 
       <a href="#" {{action "selectSeat" seat}}>{{seat.id}}</a> 
      </div> 
............................................................................... 

对象的结构:

...addObject(TravelClient.Seat.create({ 
    id: i, 
    free: true 
    })); 

设置方法效果很好,但是当我试图用新设置好的属性适用对象,Ember给我一个错误:

Uncaught TypeError: Cannot redefine property: __ember1360328485839 

如何解决这个问题?

+0

你想用'TravelClient.Seat.apply(座位)做什么? – Wildhoney 2013-02-08 17:47:26

+0

嗯,好吧,那么...那么问题是 - 何时保存更新的对象? – xamenrax 2013-02-08 19:32:55

回答

2

尝试创建交易,将座位添加到交易中,修改座位,然后提交交易。

TravelClient.TourSeatsController = Ember.ObjectController.extend({ 
    selectSeat: function(seat) { 
    var transaction = new App.store.transaction(); 
    transaction.add(seat); 
    seat.set('free', false); 
    transaction.commit(); 
    } 
}); 
+0

它给了我'未捕获的类型错误:不能读取未定义的属性'事务'。我不在我的应用程序中使用ember-data。 – xamenrax 2013-02-11 08:42:25

+0

哦,我还不够,我需要烬数据存储或它的解决方法模拟这个,所以我是假的。 – xamenrax 2013-02-11 10:59:13

相关问题