我使用ng2-select來顯示項目列表,以便用戶可以從選擇列表中搜索並找到合適的項目。我面臨的問題是它只能用於靜態數據。我的數據從RESTful webservice加載。我嘗試了多種黑客和技巧,但我無法將Web服務中的數據加載到ng2-select中。看起來這個插件不支持加載Web服務數據。 有沒有工作hack加載web服務數據到ng2選擇?Angular 2 Select - 從Web服務故障中加載數據
如果不是,請建議一個其他的angular2插件,它可以從web服務加載數據,並允許用戶搜索和選擇。
更新:
我錯過了告訴你我成功地從我的web服務中獲取數據。從Web服務獲取數據沒有問題。問題在於ng2-select。我使用從Web服務獲取的數據(由控制檯上的印刷物品數組確認)成功填充items
陣列,但ng2-select不顯示任何內容。如果我不從Web服務獲取數據,只使用本地數據(在初始化時分配)填充數組,它將工作並顯示本地數據。
它似乎不能處理請求。以下是評論的示例代碼
產品-Category.service.ts
import { Injectable } from '@angular/core';
import { Http} from '@angular/http';
import {Observable} from "rxjs";
@Injectable()
export class ProductCategoryService
{
apiUrl: string = "http://jsonplaceholder.typicode.com/users";
constructor(private http : Http){}
public getUserData(): Observable<any> {
return this.http.get(this.apiUrl)
.map(result => {
return result.json();
});
}
}
產品-category.component.ts
import { Component, OnInit , ViewChild , AfterViewInit , ElementRef } from '@angular/core';
import { Http, Headers , Response , RequestOptions } from "@angular/http";
import { Observable } from 'rxjs/Rx';
@Component({
selector: 'product-category',
templateUrl: 'product-category.component.html',
styles: []
})
export class AddProductCategoryComponent implements OnInit
{
public items = [];
my :boolean= false;
constructor(public productCategoryService:ProductCategoryService){}
ngOnInit()
{
this.getItems();
}
getItems()
{
this.productCategoryService.getUserData().subscribe(
items => this.items
);
}
UPDATE2: 爲了簡單起見,我附上了一段代碼和一張圖片以便更好地理解。您可以在代碼和圖像中看到在從服務器獲取響應之後。結果可以在控制檯中看到。但爲簡單起見,我們可以手動添加一個條目到數組中。您可以看到,ng2-select
僅顯示發送請求之前填充的數據,但該數組還包含從服務器獲取響應後填充的對象。
代碼
public items: any = [];
ngOnInit()
{
this.items.push({id : 1 , text : 'Option1'});
this.getItems();
console.log(this.items);
}
getItems()
{
this.productCategoryService.getUserData().subscribe(
success =>
{
this.items.push({id : 2 , text : 'Option2'});
console.log(success);
}
);
}
您可以加入代碼 –
請看一看代碼 – usmanwalana