Esto es probablemente bastante simple, pero parece que no puedo encontrarlo fácilmente. En knockout.js, ¿cómo imprimiría el índice de un elemento en una matriz observable sobre la que está iterando utilizando el enlace foreach?Knockout.js imprimir el índice del objeto en foreach
Respuesta
nocaut 2.1 ha añadido buena nueva opción de $ índice. Aquí está el ejemplo http://knockoutjs.com/documentation/foreach-binding.html
No puede. No directamente de todos modos. Yo uso esta función a mí mismo para agregar una propiedad de índice para objetos en mis ObservableArrays:
function indexSubscribe(array) {
array.subscribe(function() {
for (var i = 0, j = array().length; i < j; i++) {
var item = array()[i];
if (!item.index) {
item.index = ko.observable(i);
} else {
item.index(i);
}
}
});
};
Luego, en mi modelo de vista, puedo hacer algo como esto:
this.whatevers = ko.observableArray();
indexSubscribe(this.whatevers);
+1, solución pulida – Tyrsius
La siguiente solución puede ser tardía. Pero si su elección preferida es con viewmodel
, la siguiente solución lo ayudará con la última solución.
De acuerdo con Knockout 3.1.0
y las bibliotecas de arriba tiene un trabajo simple. El index
se puede pasar como argumento secundario al arrayForEach
.
var items = ["Mercedes", "Volvo", "BMW"];
ko.utils.arrayForEach(items, function(item, index) {
console.log(item + ' ' + index);
});
Espero que esta solución pueda ayudar a alguien.
- 1. Foreach anidado en knockout.js
- 2. Índice de acceso de $ parent en knockout.js
- 3. knockout.js anidado foreach acceso propiedad del bucle exterior
- 4. Knockout.js - foreach vinculante - prueba si el elemento última
- 5. ¿Cómo encontrar último índice del bucle foreach en Smarty
- 6. Obtener el índice del elemento actual en un método foreach de Traversable?
- 7. Knockout.js obtener el objeto dom asociado con los datos
- 8. ¿Cómo imprimir la identificación del objeto?
- 9. Pasando el objeto observablearray knockout.js a MVC Controller Action?
- 10. Knockout.js foreach: pero solo cuando la comparación es verdadera
- 11. Variables de índice múltiple en el bucle foreach de PHP
- 12. Obteniendo el valor de índice en razor foreach
- 13. knockout.js foreach repite el elemento td en la tabla, pero no el elemento tr
- 14. Obtener el índice del objeto en la matriz para buscar el objeto correspondiente en otra matriz
- 15. consigue automáticamente índice del bucle en el bucle foreach en Perl
- 16. Objeto en el índice en NSArray
- 17. JSTL foreach: obtener el objeto siguiente
- 18. NSMutableArray insertar objeto en el índice
- 19. ¿Cómo imprimir las propiedades del objeto stdClass en PHP?
- 20. knockout.js establecer el foco en una plantilla
- 21. Imprimir el objeto jQuery como HTML
- 22. Cómo imprimir el objeto/matriz jquery
- 23. ¿Debo liberar el objeto COM en cada iteración 'foreach'?
- 24. DeleteObject() en el bucle foreach
- 25. javascript - cómo obtener el nombre del objeto o el nombre del índice de la matriz asociativa?
- 26. ¿Cuál es el alcance predeterminado del bucle foreach en Perl?
- 27. Knockout.js consume demasiada memoria
- 28. knockout.js: el uso de un foreach sin contenedor en un <select> falla en Internet Explorer 8
- 29. Knockout.js no contenidos en recipientes "foreach" que no trabajan con <table>
- 30. ¿Imprimir contenido de objeto JavaScript?
En KO 2.1.0 (la versión beta ya está disponible), puede usar '$ index' para obtener el índice dentro de un foreach. Aquí está el hilo beta: https://groups.google.com/d/topic/knockoutjs/LdUfjGNZOj8/discussion. De manera similar a lo que Matt describe en su respuesta a continuación, utilizo esta técnica (agrego la función 'indexado' a las Apariciones observables): http://stackoverflow.com/questions/9760861/apply-a-class-to-every-nth-template- element-with-knockoutjs –
@RPNiemeyer: ¡Estoy aproximadamente 98% seguro de que te lo robé en el foro de Knockout! –
@MattBurland no se preocupe! –