UPDATE: извините, что скопировал неправильную версию моего кода: я звонил then
внутри службы, как показано на рисунке.Angular2 не может получить данные из сервиса
Я создаю Службу, которая предоставляет макет данных (по аналогичной структуре, как here), но по какой-то причине не может получить данные.
фрагмент из AppComponent
export class AppComponent implements OnInit{
ngOnInit(){
this.getData();
}
constructor(private _dataService: DataService){ }
getData(){
console.log('get data called');
var data = this._dataService.getData();
console.log('data type is '+typeof(data));
console.log('data key is ');
for(var k in data){
console.log(k);
}
DataService выглядит следующим образом:
import {Injectable} from 'angular2/core';
import {MOCK_DATA} from './mock-data';
@Injectable()
export class DataService{
getData(){
return Promise.resolve(MOCK_DATA).then(data => data);
}
}
макет данных:
export var MOCK_DATA = {
"apple": [
{"taste": "apple", "really": false},
{"taste": "random", "really": true},
],
"orange": [
{"taste": "orange", "really": false},
{"taste": "random", "really": true},
],
}
однако console.log результаты:
get data called
app.component.ts:46 data type object
app.component.ts:47 data key
app.component.ts:49 __zone_symbol__state
app.component.ts:49 __zone_symbol__value
app.component.ts:49 then
app.component.ts:49 catch
Я думаю, вам нужно импортировать 'RBACService' в ваш' AppComponent' и ввести в его конструктор. – bhanu