2016-02-15 3 views
0

К сожалению, если есть плохой английский, я французскийПоказать Parse.com Данные с * ngFor (Angular2)

Я создаю приложения с помощью Ионный 2 Угловое 2 и Parse.com. Несколько дней назад я использовал Ionic 1 и не имел проблем с моим кодом.

Когда я выполняю свой запрос с Parse, данные не отображаются в моем HTML-документе, и я не понимаю, почему.

Вот мой JS:

 var Tiers = Parse.Object.extend("Tiers"); 
     var queryObject = new Parse.Query(Tiers); 
     var lesTiers = new Array(); 

     //queryObject.equalTo("isActive", true); 

     queryObject.find({ 
      success: function (results) { 
       for (var i = 0; i < results.length; i++) { 
        tiers = results[i]; 
        lesTiers[i] = { 
         nom: tiers.get('nomTiers'), 
         prenom: tiers.get('prenTiers') 
        }; 
       } 
       console.log(lesTiers); 
       this.lestiers = lesTiers; 
      }, 
      error: function (error) { 
       alert("Error: " + error.code + " " + error.message); 
      } 
     }); 

Вот мой HTML:

<ion-list> 
     <ion-item *ngFor="#tiers of lestiers"> 
      {{tiers.nom}} {{tiers.prenom}} 
     </ion-item> 
    </ion-list> 

====================== ============================================

Мой запрос хорош, он возвращает массив объектов. Когда я пытаюсь заменить запрос на отверстие массивом, я строю себя следующим образом:

this.lestiers = [ 
     {nom: 'chien', prenom: 1}, 
     {nom: 'chat', prenom: 2}, 
     {nom: 'oiseau', prenom: 3}, 
     {nom: 'poisson', prenom: 4}, 
     {nom: 'lezard', prenom: 5} 
    ]; 

Он отлично работает. Тогда, я полагаю, эта строка:

this.lestiers = lesTiers;

не работает. Кажется, что я потерял все свои данные на этой линии.

Возможно, я забыл что-то важное?

+0

Является ли ваш JS выполненным в пределах Углового кода (компонента) или снаружи? Если он находится вне вас, вам нужно ввести «NgZone» и запустить назначение в 'zone.run (function() {...})' иначе обнаружение изменений углов не распознает изменение. Однако я не знаю, как использовать инъекцию зависимостей в JS. Есть несколько вопросов с ответами на DI с JS на SO. –

ответ

0

Я бы предложение попробовать следующее:

  • использовать метод push для добавления элементов в массиве
  • сохранить компонент этого использовать его в буквальном объекта (в функциях success ...). Я думаю, что ключевое слово this на этом уровне не является одним из компонентов, кроме одного из вашего литерального объекта.
0

Большое спасибо за ваши ответы!

Я попытался поставить свое назначение массива вне моего запроса, и он работает хорошо! Я не уверен, что это лучший способ сделать это, но он, наконец, работает.