向select2添加数据时超出了最大调用堆栈

时间:2015-07-08 15:22:17

标签: jquery-select2

在尝试从ajax函数接收数据后将数据添加到select 2元素时,我在控制台上收到此错误。

我从服务器返回的数据如下所示

[  
   {  
      "id":"55785510-2c64-447d-953d-01ce16ed9843",
      "text":"Room 100"
   },
   {  
      "id":"55785516-3da4-4791-98d5-01cd16ed9843",
      "text":"Room 110"
   },
   ...
]

在返回的json中有一手满满的这些物品。

这里我试图将数据添加到已经初始化的select2元素中,但没有添加任何选项。

success: (data) ->
    console.log data
    $('select.building-select').select2
        data: data

当我尝试这样做时,我收到调用堆栈错误

这是堆栈跟踪

Uncaught RangeError: Maximum call stack size exceeded
jQuery.extend.isPlainObject @ jquery.js:1
jQuery.extend.jQuery.fn.extend @ jquery.js:218
jQuery.extend.jQuery.fn.extend @ jquery.js:228
...

第三条线重复多次。

当我尝试将数据添加到ajax函数的成功回调中的select时,才会发生此错误。

这里的参考是ajax函数

$('#MeetingAddForm').find('input, select').change ->
    # If required inputs and selects for finding a meeting room are valid
    MeetingAttendants = $('#MeetingAttendants')
    MeetingDate = $('#MeetingDate')
    MeetingStartTime = $('#MeetingStartTime')
    MeetingEndTime = $('#MeetingEndTime')
    if MeetingAttendants.parsley().isValid() and MeetingDate.parsley().isValid() and MeetingStartTime.parsley().isValid() and MeetingEndTime.parsley().isValid()
        # All inputs are valid so lets get the available Room
        $.ajax
            url: $('#MeetingAddForm').data 'meetingrooms-ajax-url'
            data:
                attendants: MeetingAttendants.val()
                date: MeetingDate.siblings('input[type=hidden]').val()
                start_time: MeetingStartTime.siblings('input[type=hidden]').val()
                end_time: MeetingEndTime.siblings('input[type=hidden]').val()
            success: (data) ->
                console.log data
                $('select.building-select').select2
                    data: data
    else
        console.log 'false'

当我获取返回的json并将其添加到变量并尝试将数据分配给页面加载时的选择时,一切正常。

0 个答案:

没有答案