簡體   English   中英

通過變量在JavaScript對象文字中定義字段名稱

[英]define field name in JavaScript object literal from variable

我需要動態更改字段

   this.search = function(search, match) {
          var deferred = $q.defer()
          search({
            size: 10000,
            index: "products",
            body: {
              "query": {
                "match": {
                  [search]: {
                    "query": match,
                    // "operator": "and",
                    type:"phrase"
                  }
                }
              }
            }

但其顯示錯誤30:16錯誤分析錯誤:意外令牌[

您必須將其拆分,以便可以動態構建body對象:

var body = {
    "query": {
        "match": { }
    }
};
body.query.match[search] = {
    "query": match,
    "type": "phrase"
};

這不是AngularJS的問題-問題是當您使用的瀏覽器不支持對象文字時,您正嘗試使用計算屬性名稱

計算屬性名稱文檔鏈接:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

要查看哪些瀏覽器可以使用或不能使用計算屬性名稱

https://kangax.github.io/compat-table/es6/#test-object_literal_extensions_computed_properties

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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