ProtoViewLogic: curateValues()
関連付けられた要素を特徴づけるプロパティの値を収集します。
構文
protoViewLogic.curateValues() => object
返値: object
関連付けられた要素を示すプロパティ名と収集された値のオブジェクトです。
収集対象となるプロパティは、関連付けられた要素を特徴づけるプロパティです。
これは data-primary
属性が示すプロパティか、それが定義されていなければ、value
プロパティの値が使用されます。
例
const vl = new ProtoViewLogic();
const textarea = document.createElement("textarea");
const fields = [
document.createElement("input"),
document.createElement("input"),
document.createElement("input")
];
// textarea, fields をそれぞれ vl へ関連付ける
vl.relateElements({ textarea, fields });
// vl.fields の各要素を初期化
vl.fields[0].value = "1";
vl.fields[1].value = "2";
vl.fields[2].value = "3";
// vl.textarea にプロパティ vl.textarea.foo.bar を追加し、
// vl.textarea に "data-primary" 属性を定義する。
vl.textarea.foo = { bar: 4 };
vl.textarea.dataset.primary = "foo.bar";
console.log(vl.curateValues());
// ==> { textarea: 4, fields: ["1", "2", "3"] } が返却される
解説
関連づけられたある要素について、それを特徴づけるプロパティが未定義か値を持っていない場合、その Element
は収集されません。
対象の ProtoViewLogic
に Element
の配列が関連付けられている場合、その配列に含まれる Element
を特徴づけるプロパティの値の配列が、関連付けられた Element
配列に対応するプロパティの値として設定されます。
例えば、vl
を対象の ProtoViewLogic
とし、それに関連付けられた Element
配列が vl.fields
として関連付けられていて、各要素は data-primary
属性を持たないとします。この場合、vl.curateValues()
の返値は { ..., fields: [ vl.fields[0].value, vl.fields[1].value, ... ], ... }
と等価な値になります。