Knockout.js 使用knockoutjs attr编写数据*属性

Knockout.js 使用knockoutjs attr编写数据*属性,knockout.js,custom-data-attribute,Knockout.js,Custom Data Attribute,我在knockout.js中遇到了数据*属性的问题,即使用attr将它们写出来 我可以毫无问题地做到这一点: <input data-bind='text: Title, attr: {name: "Events[" + viewModel.events.indexOf($data) + "].Title"}'/> 这让我 Error: Unable to parse bindings. Message: SyntaxError: missing } in compound sta

我在knockout.js中遇到了数据*属性的问题,即使用
attr
将它们写出来

我可以毫无问题地做到这一点:

<input data-bind='text: Title, attr: {name: "Events[" + viewModel.events.indexOf($data) + "].Title"}'/>
这让我

Error: Unable to parse bindings.
Message: SyntaxError: missing } in compound statement;
Bindings value: attr: {
http://127.0.0.1:21254/Scripts/knockout/knockout-2.2.0.js
有人能看到这里出了什么问题吗


干杯

您只需在其周围加上双引号即可:

<input data-bind='text: Title, attr: {"data-id": "Events[" + viewModel.events.indexOf($data) + "].Title"}'/>

下面是一个工作片段,演示了如何使用Knockout设置自定义数据属性值:

ko.applyBindings({
somevalue:'foo',
标题:“剔除自定义数据属性绑定--示例”
});
$(“#结果”).text($(“#测试el”).data(“somettr”)


测试数据属性预期值:foo

测试数据属性值:

您甚至不需要在attr name周围加双引号或单引号,只需使用数据id即可

<input data-bind='text: Title, attr: {data-id: "Events[" + viewModel.events.indexOf($data) + "].Title"}'/>

@Michael Best:谢谢,你帮我解决了一个相关问题。
<input data-bind='text: Title, attr: {data-id: "Events[" + viewModel.events.indexOf($data) + "].Title"}'/>