[英]JavaScript String object is being split into an array on jQuery.post
[英]unable to pass javascript object in jquery.post
我有一個 javascript object 存儲在變量dashboard_filter_value_attributes
中,其中包含我試圖通過郵寄發送到我的rails controller 以進行進一步處理的畫面過濾器名稱。
當我執行console.log(dashboard_filter_value_attributes)
時,我在控制台上看到了下面的 output,我已經擴展了第 0 個索引鍵,這就是為什么你會看到__proto__: Object
在下面的 Z78E6221F628F14CE693
{}
0:
filter_name: "Filter One"
__proto__: Object
1: {filter_name: "Filter Two"}
2: {filter_name: "Filter Theree"}
3: {filter_name: "Filter Four"}
4: {filter_name: "Filter Five"}
5: {filter_name: "Filter Six"}
6: {filter_name: "Filter Seven"}
7: {filter_name: "Filter Eight"}
8: {filter_name: "Filter Nine"}
9: {filter_name: "Filter Ten"}
__proto__: Object
我已經定義了let dashboard_filter_value_attributes = {};
但我無法通過郵寄方式發送 object。 object 沒有通過並且在jQuery.post
執行期間被忽略,我也沒有在控制台上看到任何錯誤。
這是我的jQuery.post
電話
let activeSheet = tableauViz.getWorkbook().getActiveSheet();
let viewName = 'my custom view';
let counter = 0;
let dashboard_filter_value_attributes = {};
activeSheet.getWorksheets().forEach(function(worksheet) {
if (worksheet.getName() == "Filter") {
worksheet.getFiltersAsync().then(function(filterParameterList) {
filterParameterList.forEach(function(fp) {
const name = filter ? fp.getFieldName() : fp.getName();
dashboard_filter_value_attributes[counter] = {
filter_name: name,
};
counter = counter + 1;
}
});
});
});
jQuery.post($('#new_dashboard_filter').attr('action'), {
dashboard_filter: {
name:viewName,
dashboard_filter_values: dashboard_filter_value_attributes
}
});
我也嘗試過使用 JSON.strigify 但即便如此我也無法將 object 發布到我的導軌 controller。
當我使用console.log(JSON.strigify(dashboard_filter_value_attributes));
我看到[]
在這方面的任何幫助都會非常棒。 謝謝。
它可能在用於定義數組/對象的方法中
我已經定義了
let dashboard_filter_value_attributes = {};
這定義了一個空的 Object,但是您已經用數字鍵 (0-9) 填充了它,這是數組通常用於的。 當然 Arrays 是 JavaScript 中的對象,但對象通常具有命名鍵(filter_name_1 或其他東西)。
在 JavaScript 中定義數組的簡寫形式是[]
,而不是{}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.