observablearray knockout example ejemplos array knockout.js requirejs knockout-mapping-plugin

knockout.js - example - observable array knockout js



Knockout.js mapeo plugin con require.js (3)

Cuando se usa con AMD, el complemento de mapeo exporta su funcionalidad a un objeto separado. Por lo tanto, la funcionalidad se adjuntará a su variable de mapping y usted llamará a los métodos fuera de ella (como mapping.fromJS ).

Puede elegir establecer ko.mapping igual a la mapping en su código, si tiene un código que se basa en ko.mapping que no puede cambiar.

¿Cuál es la forma estándar de cargar el complemento de mapeo en require.js?

A continuación se encuentra mi config.js (archivo de configuración require.js)

require.config({ // Initialize the application with the main application file. deps: ["app"], paths:{ // JavaScript folders. libs: "lib", plugins: "lib/plugin", templates: "../templates", // Libraries. jquery: "lib/jquery-1.7.2.min", underscore: "lib/lodash", text: ''text'', order: ''order'', knockout: "lib/knockout", knockoutmapping: "lib/plugin/knockout-mapping" }, shim:{ underscore:{ exports: ''_'' }, knockout:{ deps: ["jquery"], exports: "knockout" } } }

En mi modelo de vista

define([''knockout'', ''knockoutmapping''], function(ko, mapping) { }

Sin embargo, la asignación no está vinculada a ko.mapping. Cualquier punteros / sugerencias serían apreciados.

Gracias ravi


En una nota al margen, debido a que está utilizando Lo-Dash , no necesita incluir el "guión bajo" en las opciones de "ajuste" de RequireJS. Lo-Dash tiene soporte AMD incorporado.


Su objeto de configuración puede especificar un conjunto de dependencias y una devolución de llamada donde se puede realizar una configuración / manipulación adicional de la dependencia:

var require = { paths: { ''knockout'': ''...'', ''mapping'': ''...'' }, // configuration dependencies deps: [''knockout'', ''mapping''], // configuration callback callback: function (ko, mapping) { ko.mapping = mapping; } };

Y cuando incluya sus scripts en el marcado, la configuración debe cargarse antes de requerir:

<script src="/scripts/config.js" /> <script src="/scripts/require.js" />

Ahora, Knockout.js estará disponible con una propiedad ko.mapping como se desee cuando se use en una definición de módulo.

define([''knockout''], function (ko) { // ko.mapping is available });

Tenga en cuenta que este es un ejemplo de configuración abreviado. Se necesitan algunos ajustes para que el plugin de mapeo especifique las exportaciones correctas, pero no recuerde lo que es.