KO数据绑定到没有foreach的数组?

时间:2013-02-15 20:29:17

标签: javascript asp.net-mvc razor asp.net-mvc-4 knockout.js

我正在使用MVC + Razor,并且尽可能希望留在强大的世界中。

因此希望使用Razor语法迭代我的视图模型,并通过数组索引将数据绑定到knockout。

这可行吗?到目前为止,我看到的所有示例都排除了for-each模板的使用。

@Html.TextBoxFor(_ => _[i],new {@readonly = "readonly", data_bind = string.Format("value:[{0}]",i) });

强类型模型是一个数组,上面是从for循环内部迭代的。

1 个答案:

答案 0 :(得分:0)

不管怎么说,这要归功于@nemesv的原始jsfiddle:

<input type="text" data-bind="value: $data[0].name"></input>
<input type="text" data-bind="value: $data[1].name"></input>
<input type="text" data-bind="value: $data[2].name"></input>

使用以下javascript文件。

var ViewModel = ko.observableArray( [{
        name: 'name1'
    }, {
        name: 'name2'
    }, {
        name: 'name3'
    }]
);

ko.applyBindings(ViewModel);

如果没有它, $ data 是必需的,它不起作用。我仍然不确定为什么会这样。

http://jsfiddle.net/8pVEr/3/