0
使用Ember.js使用{{#each}}標籤時非常infinte環路我得到下面的代碼無限循環:Ember.js模板
控制器:
App.activityDetailsController = Em.Object.create({
activityBinding : 'App.navController.selectedActivity',
data : function(){
var things = new Array();
if(this.activity){
var info = this.activity.get('info');
var len = info.length;
for(var i=0; i<len; i++){
for(prop in info[i]){
things.push({"key": prop, "value" : info[i][prop]});
}
}
}
return things;
}.property('activity')
})
查看:
App.ActivityDetailsView = Em.View.extend({
templateName : 'activity-details',
activityBinding : 'App.activityDetailsController.activity',
dataBinding : 'App.activityDetailsController.data'
})
模板:
<script type="text/x-handlebars" data-template-name="activity-details">
<div id="info">
{{#each data}}
{{key}}: {{value}}<br />
{{/each}}
</div>
</script>
嘗試加載此頁面時,控制器中的'數據'功能被無休止地調用。
如果我從視圖中刪除{{#each}} {{/ each}}塊,則沒有任何問題,並且在模板中使用{{data.length}}會提供正確的輸出。
任何想法爲什麼這會無休止地循環?如果我從房產調用中刪除「活動」,問題是一樣的。
感謝,
等待,不會#each數據返回一個函數,而不是該函數的值?如果你想返回一個值,爲什麼不把它作爲一個計算機屬性? – jasonpgignac 2012-02-20 18:13:44