2017-04-04 4 views
0

Angular2プロジェクトでng2-select2を使用していますが、select2でレンダリングできないという問題があります。私はデータを取得するが、私はtemplateResultにオプションを表示することはできません。ng2-select2でオプションを作成する方法ajax

public options: Select2Options; 
public ajaxOptions: any; 

public ngOnInit(): void { 

    this.ajaxOptions = { 
     url: 'https://localhost:8080/ajaxdata/testselect2', 
     dataType: 'json', 
     delay: 500, 
     cache: false, 
     data: (params: any) => { 
      return { 
       search: params.term, 
       gotoPage: params.page 
      }; 
     }, 
     processResults: (data: any, params: any) => { 
      params.page = params.page || 1; 
      return { 
       results: data.objectValue.items, 
       }), 
       pagination: { 
        more: (params.page * 10) < data.objectValue.total_count 
       } 
      }; 
     }, 
    }; 

    this.options = { 
     ajax: this.ajaxOptions, 
     templateResult: (object: Select2SelectionObject) => { 
      // should create option in here 
     } 
    }; 

答えて

0

HTML

<select2 [options]="options"></select2> 

TSは、私はそれを修正しました。私はjsonがselect2でフォーマットされていないので、このようなprocessResultsで自分のコードを変更して、オプションをレンダリングするtemplateResultを削除します。

processResults: (data: any, params: any) => { 
    params.page = params.page || 1; 
    return { 
     results: $.map(data.objectValue.items, function (obj) { 
      return { id: obj.code, text: obj.desc }; 
     }), 
     pagination: { 
      more: (params.page * 10) < data.objectValue.total_count 
     } 
    }; 
}, 
+0

私は同じ問題に直面しています。それはAJAX呼び出しを起動さえしませんでした。どうやってこれを稼働させましたか? – Jayant

+0

AJAX呼び出しを起動できますが、htmlにレンダリングできません。コードを表示できますか? –

+0

これは実際にあなたのコードのコピーです。 [こちらをご覧ください](https://stackoverflow.com/questions/46050414/use-ajax-in-ng2-select2)。私はこの質問にそれを掲載しました – Jayant

関連する問題