簡體   English   中英

無法通過 jquery.post 中的 javascript object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM