2015-05-17 61 views
0

我有一個數據燈具適配器說..複選框在灰燼的js

App.Person.reopenClass({ 
FIXTURES: [ 
    { 
     id: 1, 
     name: 'Name1', 
    }, 
    { 
     id:2, 
     name:'Name2' 
    } 
] 

});

在我的模板,我想這個模型checkboxes..like結合有兩個名字的機型,所以應該是兩個複選框以名字作爲其標籤

這是我的路線

App.IndexRoute=Ember.Route.extend({ 
model:function(){ 
    return this.store.findAll('person'); 
} 

});

,這是控制器上一個按鈕,我想檢索的複選框

App.IndexController=Ember.ArrayController.extend({ 

actions:{ 
    buttonHandler:function(){ 
      //Get Names which are checked/unchecked 
     }} 
}); 

信息的點擊有沒有辦法與複選框模型綁定和檢索的複選框已在控制器被選中?

+0

當叫這個buttonHandler?按下按鈕或任何複選框? – blessenm

+0

在按下按鈕時會調用按鈕處理程序@blessenm – kautilya

回答

0
App.Person.reopenClass({ 
FIXTURES: [ 
{ 
    id: 1, 
    name: 'Name1', 
    checked: false 
}, 
{ 
    id:2, 
    name:'Name2', 
    checked: false 
} 
]); 

您的模板:

{{#each controller.model as |obj|}} 
    {{input type="checkbox" name=obj.name checked=obj.checked}} 
{{/each}} 
<button {{action 'buttonHandler'}}>Get checked</button> 

控制器:

App.IndexController=Ember.ArrayController.extend({ 

actions:{ 
    buttonHandler:function(){ 
     var checked_only = this.get('model').filterBy('checked', true); 
    }} 
}); 

希望這有助於...

+0

它顯示錯誤---未捕獲錯誤:第10行上的分析錯誤: ... controller.model as | obj |}} {{輸入ty - ---------------------^ 期待CLOSE,CLOSE_UNESCAPED,STRING,INTEGER,BOOLEAN,ID,EQUALS ','DATA','SEP','無效' – kautilya

+0

你在哪個版本的Ember?也許你應該將模板更改爲:'{{#each obj in controller.model}}' – Akis

+0

Ya謝謝 這是一個版本問題:P – kautilya

1

我建議使用ObjectProxy想在這個博客帖子描述:http://www.poeticsystems.com/blog/ember-checkboxes-and-you

您可以避免在模型上放置「已檢查」屬性,並且不得負責嘗試保存已檢查屬性等的序列化程序。

從博客文章

代理型號:

proxiedModel: Ember.computed.map('model', function(model) { 
    return Ember.ObjectProxy.create({ 
    content: model, 
    checked: false 
    }); 
} 

模板:

<ul> 
{{#each proxiedModel}} 
    <li> 
    {{input type="checkbox" value=checked}} 
    {{name}} 
    </li> 
{{/each}} 
</ul> 
+0

非常感謝...... – kautilya