Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从“生成html”;{输入:{';A';:';System.Int32';,';B';';System.Int32';},输出:System.Int32};_Javascript_Knockout.js_Metadata - Fatal编程技术网

Javascript 从“生成html”;{输入:{';A';:';System.Int32';,';B';';System.Int32';},输出:System.Int32};

Javascript 从“生成html”;{输入:{';A';:';System.Int32';,';B';';System.Int32';},输出:System.Int32};,javascript,knockout.js,metadata,Javascript,Knockout.js,Metadata,我以字符串形式获取元数据,如“{Input:{'A':'System.Int32','B':'System.Int32'},Output:System.Int32}” 我正在使用knockout.js,也可以使用json.parse。但是有没有简单的方法来生成inputform,让用户提交输入属性的数据。(将元数据更改为属性列表是否更好?我使用它来生成属性数组 self.input = ko.observableArray([]); if (data.MetaData) { // aler

我以字符串形式获取元数据,如“{Input:{'A':'System.Int32','B':'System.Int32'},Output:System.Int32}”


我正在使用knockout.js,也可以使用json.parse。但是有没有简单的方法来生成inputform,让用户提交输入属性的数据。(将元数据更改为属性列表是否更好?

我使用它来生成属性数组

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>

如果您使用knockout,应该可以创建适合该框架的输入-但是for-in加上for-in应该处理上述问题您的意思是我应该更改元数据生成器吗?您可以,但您也可以在页面中更改它以符合该框架。对我来说听起来更安全。您的数据看起来像是有效的JSON元数据应该如何处理要关联您想要生成的HTML?我想输入应该是输入元素,其名称
A
B
表示数字…但是输出应该代表什么?您需要清楚地定义您正在做什么。当然,knockout可以为您生成内容,但您没有给我们太多的工作。我刚刚发现该JSON.parse不处理“?但必须使用”
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);
    }
};