「{Input:{'A':'System.Int32'、'B':'System.Int32'}、Output:System.Int32}」のような文字列としてメタデータを取得します
私はknockout.jsを使用しており、json.parseも使用できます。しかし、ユーザーが入力のプロパティのデータを送信できるようにする入力フォームを生成する簡単な方法はありますか。(メタデータをプロパティのリストに変更する方がよいでしょうか?
「{Input:{'A':'System.Int32'、'B':'System.Int32'}、Output:System.Int32}」のような文字列としてメタデータを取得します
私はknockout.jsを使用しており、json.parseも使用できます。しかし、ユーザーが入力のプロパティのデータを送信できるようにする入力フォームを生成する簡単な方法はありますか。(メタデータをプロパティのリストに変更する方がよいでしょうか?
これを使用して、プロパティの配列を生成しました。
self.input = ko.observableArray([]);
if (data.MetaData) {
// alert(data.MetaData);
var d = JSON.parse(data.MetaData).Input;
for (var prop in d) {
self.input.push({name:ko.observable(prop),type:d[prop],value:ko.observable('')});
}
}
および表示:
<ul data-bind="foreach:test().input">
<li >
<label data-bind="text:name, uniqueFor: name"></label>
<input placeholder="value" data-bind="value:value, uniqueId: name"/>
</li>
</ul>
およびバインディング:
ko.bindingHandlers.uniqueId = {
init: function (element, valueAccessor) {
var value = valueAccessor();
value.id = value.id || ko.bindingHandlers.uniqueId.prefix + (++ko.bindingHandlers.uniqueId.counter);
element.id = value.id;
},
counter: 0,
prefix: "unique"
};
ko.bindingHandlers.uniqueFor = {
init: function (element, valueAccessor) {
var value = valueAccessor();
value.id = value.id || ko.bindingHandlers.uniqueId.prefix + (++ko.bindingHandlers.uniqueId.counter);
element.setAttribute("for", value.id);
}
};