2016-02-14 2 views
0

У меня есть класс с именем test with property inside - это данные. Как я могу связать home.showVar с test.data так, когда test.data обновляется, home.showVar обновляется тоже (я хочу, чтобы отобразить список для пользователя)Angular2 связывает данные службы с моделью var

В основном я хочу иметь сервис под названием тест, который вызывает апи вызов, который затем возвращает данные и объединяется с существующими данными, а затем показывает пользователю. Я новичок в angular2 и машинописном. поэтому я не уверен, как объединить http-данные с существующими данными и привязать их к разным страницам.

export class test { 
    public data = 'yes'; 
    constructor() { } 
} 

@Page({ 
    templateUrl: 'home.html' 
}) 

export class Home { 
    showVar; 
    constructor(test: test) { 
     this.showVar = test.data; 
    } 
} 

ответ

1

Базиально вам нужно создать одну функцию в классе тестирования, которая вернет что-то или ответ. то в вашем классе используйте этот метод класса для получения обновленных данных. затем назначьте переменную showVar. надеюсь, это поможет вам.

export class test { 
    public data = 'yes'; 
    constructor() { } 
    demo(){ 
     return this.data; 
     } 
} 

@Page({ 
    templateUrl: 'home.html' 
}) 

export class Home { 
    showVar; 
    constructor(private test: test) { 
     this.test.demo(res=>{ 
      res= this.showVar; 
     }); 
    } 
} 

Опубликовать больше кода это может устранить вашу проблему подробнее. просто для примера я разместить еще один пример надеюсь, что это может очистить больше, используя вызов API здесь пример:

вот мой код компонента файл так же, как ваш код home компонента:

API_call() { 
    let url_getApi = 'Path or URl here...' 

    this.APIService.getData(url_getApi) 
     .subscribe(res=> { 
      if (res) { 
       this.showVar= res; 
       console.log(res, "Data from API call"); 
      } 
     }); 
} 

теперь вот файл службы (APIService.ts) code ir ваш тестовый код может выглядеть так:

getData(url) { 
    return this.http.request(new Request(url, or RequestOptions as per need) 
    .map(res => { 
      return res.json(); 
     }); 
} 
+0

все это время будет подключаться? Как если бы я обновил test.data, будет ли home.showVar автоматически обновляться? – Basit

+0

Нет, я не думаю, что это будет обновляться только при вызове метода/функции вашего служебного файла. –

+0

Я получаю ошибку на 'this.test.demo (res = ....) Поставляемые параметры не соответствуют какой-либо сигнатуре вызова target.' – Basit

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