web-dev-qa-db-ja.com

select2がtemplateResultsまたはtemplateSelectionオプションを使用していません

テンプレートでselect2 ajax呼び出しを使用しようとしています。私はajaxを問題なく取得していますが、テンプレート関数を使用していません。

ajaxデータは次のとおりです。

[
   {"name":"First thing","otherData":"asdfg"},
   {"name":"Second thing","otherData":"qqerr"},
   {"name":"third thing","otherData":"yerty"},
   {"name":"fourth thing","otherData":"hgjfgh"},
   {"name":"fifth thing","otherData":"fhgkk"}
]

select2コード(私は here からたくさん取った):

FundSearch = {
    create: function (selector, theURL) {
      $(selector).select2({
        ajax: {
          url: theURL,
          dataType: 'json',
          delay: 250,
          data: function (params) {
            console.log(params.term);
            return {
              q: params.term, // search term
              page: params.page
            };
          },
          results: function (data, page) {
            // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to
            // alter the remote JSON data
            return {
              results: data
            };
          },
          cache: true
        },
        escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
        minimumInputLength: 1,
        templateResult: formatData,
        templateSelection: formatDataSelection
      });

      function formatData (data) {
          if (data.loading) return data.name;

          markup = "<h1>" + data.name + "</h1>" + "<p>" + data.otherData + "</p>";

          return markup;
        }

        function formatDataSelection (data) {
          return data.name;
        }


    }
};

私が得ているエラーはUncaught TypeError: Cannot read property 'toUpperCase' of undefinedの356行目select2.jsバージョン:3.5.2。

Select2がtemplateSelectionおよびtemplateResults関数を使用していないようです。

15
Bwata

4.0.0のドキュメントを見ていますが、3.5.2を使用しています。 .5.2のドキュメントに引き続きアクセスできます。

具体的には、templateSelectionおよびtemplateResultオプションは4.0.0にのみ存在します。それらは、3.5.2ではformatSelectionおよびformatResultと呼ばれていました。

41
Kevin Brown

Select2 3.5.2。では、「formatResult」です(formatResultsではなく、単一)

3
Pierre Jauniaux