2014-08-28 4 views
0

Не понимаю, почему я не могу визуализировать свои данные. Если я проверю с помощью приложения google и на консоли (App.model.store), они есть, но всякий раз, когда я пытаюсь вставить их в Handlebars, ничего не происходит. тем более странно, что ошибка не отображается.Ember: не отображать мои данные

Я подготовил упрощать версию своего приложения, чтобы разместить здесь:

<script type="text/x-handlebars" data-template-name="index"> 
    <header> 
    <ul> 
     <li>{{#linkTo "cal"}} Home {{/linkTo}}</li> 
     <li>{{#linkTo "location"}} location {{/linkTo}}</li> 
    </ul> 
</header> 
<section class="content"> 

    {{outlet}} 

</div> 
</script> 

<script type="text/x-handlebars" data-template-name="cal"> 
    <div class="calendar"> 
     Hello!!! 
    <h2>{{name}}</h2> 
    </div> 
</script> 

window.WebCalendar = Ember.Application.create(); 

WebCalendar.ApplicationAdapter = DS.FixtureAdapter.extend(); 

WebCalendar.Store = DS.Store.extend({ 
    revision: 12, 
    adapter: 'DS.FixtureAdapter' 
}); 

/////// ROUTER 
WebCalendar.Router.map(function() { 
    this.resource('index', {path: '/'}, function() { 
     this.resource("cal", {path: '/'}); 
     this.resource("location", {path: '/location'}); 
    }); 
}); 



WebCalendar.CalRoute = Ember.Route.extend({ 
    model: function(){ 
     return this.store.find('cal').toArray(); 
    } 
}); 


////// Model 
WebCalendar.Cal = DS.Model.extend({ 
    name: DS.attr('string'), 
    days_label: DS.attr('string'), 
    months_label: DS.attr('string'), 
    days_per_month: DS.attr('number'), 
    current_date: DS.attr('date') 

}); 


WebCalendar.Cal.FIXTURES = [ 
    { 
    "id": 1, 
     "name": "Jhon", 

     "days_label": ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], 

     "months_label": ['January', 'February', 'March', 'April', 
         'May', 'June', 'July', 'August', 'September', 
         'October', 'November', 'December'], 

     "days_per_month": [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 
    } 
]; 

Я действительно не уверен, что мой файл JSON также .. Любая помощь очень ценю!

Здесь codepen

P.S. Если у вас также есть предложение, как правильно проверить ember в консоли, будет супер!

+0

Вы можете использовать уголек-инспектор, чтобы проверить ваше приложение Ember https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi? hl = ru – IgorT

+0

да, я уже использую его, но большую часть времени не очень полезно :( –

ответ

2

Посылка find() вызова найти все модели, которые CA и так будет возвращать массив все равно так не нуждается в toArray()
Учитывая, что массив возвращается вам нужно перебрать этот массив, чтобы найти имя поэтому код должен быть:

<script type="text/x-handlebars" data-template-name="cal"> 
    <div class="calendar"> 
    Hello!!! 
    {{#each cal in model}} 
    <h2>{{cal.name}}</h2> 
    {{/each}} 
    </div> 
</script> 


WebCalendar.CalRoute = Ember.Route.extend({ 
    model: function(){ 
     return this.store.find('cal'); 
    } 
}); 

также в модели вашей days_label, months_label, days_per_month определяются как строки, но в вашем JSON они являются массивами.

Ember.Logger.log(); зарегистрирует вещи уплотнительных консолей для вас: экс

WebCalendar.CalRoute = Ember.Route.extend({ 
     model: function(){ 
     var cals = this.store.find('cal'); 
     Ember.Logger.log(cals); 
      return cals 
     } 
    }); 
+0

Я использовал .toArray(), потому что я не могу четко видеть свои данные в консоли, и когда я пытался с ними где очень ясно, поэтому я думал, что это упрощение. О модели, определенной как строка, на самом деле я много ищу, как я могу определить их, и я нашел только число и строку, поэтому я догадался, что не могу определить как Arr ай, но теперь я знаю Yeyy! Благодаря! Последнее, что я уже пытался использовать, но жаловался, что там не было массива. И теперь, после исправления всех других мелких проблем, я могу увидеть лучшую ошибку. Msg: My Controller определяется как ObjectController, вместо этого он запрашивает ArrayController. –

+0

В принципе: Большое спасибо! :) Последний вопрос: как я могу получить доступ к одному дню недели, например? Я думал, что мне просто нужно сделать {{days_label [2]}}, но на самом деле это не работает –

+0

глядя на ваше перо кода, которое вы не можете сделать DS.attr ('array') - ember не понимает его - оставьте их как (строки '), чтобы получить день недели, вам нужно будет вычислить свойство – Craicerjack

Смежные вопросы