multiple knockout for data knockout.js custom-data-attribute

knockout.js - for - knockout select value binding



Trabajar con atributos knockoutjs para escribir datos* (3)

A continuación se muestra un fragmento de trabajo que ilustra cómo establecer un valor de atributo de datos personalizado con Knockout:

ko.applyBindings({ somevalue: ''foo'', title: ''Knockout custom data attribute binding -- example'' }); $("#result").text($("#test-el").data("someattr"));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> <div data-bind="text: title, attr: {''data-someattr'': somevalue}" id="test-el"></div> <p> <b>Test data attribute expected value:</b> foo </p> <p> <b>Test data attribute value: </b> <span id="result"></span> </p>

Me encuentro con un problema con los atributos de datos * en knockout.js, es decir. escribiéndolos con attr .

Puedo hacer esto sin ningún problema:

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

pero si quiero usar data-id , la forma normal no funciona, así que pongo una sola cita alrededor del atributo:

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

que me da

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

¿Alguien puede ver lo que salió mal aquí?

¡Aclamaciones!


Ni siquiera necesita poner comillas dobles o simples alrededor del nombre de attr, simplemente vaya con simplemente data-id

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


Solo necesita poner comillas dobles alrededor de esto:

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