0

JSlink コードについて助けが必要です。

私はこのコードを使用しましたが、うまくいきます:

var Fields = {
    "Continent": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    },
    "Country": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    },
    "City": {
            "NewForm": FieldTemplate,
            "EditForm": FieldTemplate
    }
};

しかし、動的にしたいので、これを試しました:

for (var i = 0; i < fields.length; i++){
    Fields.push(fields[i].name: {
        "NewForm": countryFieldTemplate,
         "EditForm": continentFieldTemplate
    });
}

for ループでは、fields は「Continent」、「Country」、および「City」を含む配列ですが、コードが機能せず、その理由を知りたいです。前もって感謝します。

4

2 に答える 2

0
// Fields needs to be an object rather than an array
var Fields = {};

// loop over your fields array
for (var i = 0; i < fields.length; i++){

    // then just assign each field as the key to the Fields object
    Fields[fields[i]] = {
       NewForm: countryFieldTemplate,
       EditForm: continentFieldTemplate
    };
}

デモ

于 2015-02-12T11:02:47.257 に答える
0

次の構文を使用して、JavaScript オブジェクトのプロパティを作成できます。

Object[propertyName] = propertyValue;

したがって、これは機能するはずです:

var Fields = {};
for (var i = 0; i < fields.length; i++){
    Fields[fields[i]] = {
        "NewForm": countryFieldTemplate,
         "EditForm": continentFieldTemplate
    };
}

どこfieldsにある:

var fields = ["Continent", "Country", "City"]
于 2015-02-12T11:01:51.733 に答える