2014-02-13 3 views
1

Я хочу показать проблемы, которые я получаю от Ember.Deferred. и передать его контроллеру. Но это показывает ошибку.Невозможно пройти через Ember.Deffered Object в шаблоне

<script type="text/x-handlebars" id="magazines/show/issues"> 
{{#if issues}} 

    {{#each issue in issues}} 
     <li class="has-sub"> 
     <a href="#">{{issue.name}}</a> 
     <ul style="display: none;"> 
      <li {{action showGenericData issue}}><a href="#">Generic</a></li> 
      <li><a href="#">Inside</a></li> 
     </ul> 
     </li> 
    {{/each}} 

{{else}} 

    <li>No Issue</li> 

{{/if}} 

код для модели

var dfd = Ember.Deferred.create(); 
     var issues = Em.A(); 

     $.getJSON(App._api_path + "issues/" + mag_id , 
     function(response){ 

      response.forEach(function(m){ 
       issues.pushObject(App.Issue.create(m)); 
      }); 

      dfd.resolve(issues); 
     }); 

     return dfd; 

Ошибка в консоли

Assertion failed: The value that #each loops over must be an Array. You passed <Ember.Deferred:ember285> ember-1.3.1.js:3285 

Uncaught TypeError: Object [object Object] has no method 'addArrayObserver' 

Пожалуйста, помогите. Спасибо ...

+0

Где Вы возвращаете эту недвижимость? – Kingpin2k

ответ

1

Если вы возвращали это из крючка модели, это сработало бы хорошо. Если вы возвращаете его из некоторого вычисленного свойства, вы должны просто возвращать проблемы.

var dfd = Ember.Deferred.create(); 
var issues = Em.A(); 

$.getJSON(App._api_path + "issues/" + mag_id , 
    function(response){ 

    response.forEach(function(m){ 
     issues.pushObject(App.Issue.create(m)); 
     }); 

    dfd.resolve(issues); 
}); 

return issues; 
+0

Спасибо за помощь. он работает сейчас. :) – Ahmed

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