knockoutjs knockout example data computed applybindings knockout.js breeze

knockout.js - knockout - Breeze no genera ko observables



knockoutjs variables (3)

@frenchfraso - Vale la pena conocer algunas mejoras en Breeze desde que escribió su código.

El espacio de nombres entityModel está en desuso y todo lo que estaba en él se ha elevado a breeze . El espacio de nombres entityModel aún funciona ... pero desea deshacerse de él cuando tenga tiempo. Así es como crearía un EntityManager hoy:

var manager = new breeze.EntityManager(serviceName);

Knockout ahora es el adaptador predeterminado "modelLibrary" y Web API es el adaptador predeterminado "dataservice", por lo que ya no tendrá que configurar brisa core.

Eso significa que simplemente puede eliminar cada línea del código en su pregunta :)

Hay una nueva sintaxis para especificar un adaptador Breeze no predeterminado. Aquí hay un ejemplo que configura Breeze para usar la biblioteca del modelo Backbone en lugar de Knockout:

breeze.core.config.initializeAdapterInstances({modelLibrary: "backbone"});

Tengo el siguiente problema con una simple aplicación web MVC4 + ko + breeze: las entidades breeze devueltas por una consulta son objetos javascript simples, sin ko observables. Inspeccioné la muestra de todo (que devuelve correctamente ko observables) y no encontré el lugar donde brisa está configurado para trabajar con ko (y generar observables). Intenté agregar las siguientes líneas, pero nada cambió:

var core = breeze.core; var entityModel = breeze.entityModel; core.config.setProperties({ trackingImplementation: entityModel.entityTracking_ko, remoteAccessImplementation: entityModel.remoteAccess_webApi });

Gracias de antemano por su amable ayuda


gotcha! el problema estaba en un par de atributos faltantes en el controlador WebApi:

[JsonFormatter, ODataActionFilter] public class MyController : ApiController { // my methods... }

Después de agregar [JsonFormatter, ODataActionFilter] ¡las entidades devueltas tenían los observables ko esperados!


Mi problema es que he cargado knockout DESPUÉS de la brisa y, por lo tanto, la brisa me devolvió los objetos POJO.

<script src="Scripts/jquery-1.9.1.js"></script> <script src="Scripts/q.js"></script> <script src="Scripts/breeze.debug.js"></script> <script src="Scripts/knockout-2.1.0.debug.js"></script> <script src="Scripts/toastr.js"></script> <script src="Scripts/require.js" data-main="App/main"></script>

Después de cambiar la orden de carga, la brisa devolvió los observables KO:

<script src="Scripts/jquery-1.9.1.js"></script> <script src="Scripts/q.js"></script> <script src="Scripts/knockout-2.1.0.debug.js"></script> <script src="Scripts/breeze.debug.js"></script> <script src="Scripts/toastr.js"></script> <script src="Scripts/require.js" data-main="App/main"></script>