簡體   English   中英

角度如何從服務器中獲取帶有選項的下拉選擇輸入

[英]angular how to get a drop down selection input with options from the server

控制台錯誤:

AddTaskComponent.html:11錯誤TypeError:無法讀取Object.eval中未定義的屬性“名稱” [作為updateDirectives]

HTML:

<select ng-model="memberlist">

    <option ng-repeat="data in memberlist" value="{{data.name}}">{{data.name}}</option>

</select>

組件代碼:

ngOnInit() {
    this.onGetMember()
}
onGetMember() {
    this.helper = this.pagedata.getMemberNames()
    this.helper.subscribe(
      res => {
        // this.memberlist = res.json();
        this.memberlist = JSON.parse(JSON.stringify(res));
        console.log("from angular component for add task: ");
        console.log(this.memberlist);
      });
  }

數據確實會顯示在檢查器控制台上,但不會出現在下拉列表中。

{_body:“ [[{” name“:” A“},{” name“:” B“},{” name“:” C“}]]”,狀態:200,確定:> true,statusText:“確定“,標題:{…},…}

需要訪問_body屬性。

另外,使用可選參數? 如果對象為null,則防止引發異常

<option *ngFor="let data of memberlist._body" [value]="data?.name">{{data?.name}}</option>

這是因為您從服務中獲取的數據格式。 解決方案是您必須使服務成為可觀察類型。 這樣您就可以在訂閱部分獲取json。 在您的情況下,響應如下:

{_body: "[{"name":"A"},{"name":"B"},{"name":"C"}]", status: 200, ok: >true, statusText: "OK", headers: {…}, …}

並將其分配給this.memberlist。

試試this.memberlist = res.json();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM