在尝试从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并将其添加到变量并尝试将数据分配给页面加载时的选择时,一切正常。