observablearray knockout data concatenate knockout.js durandal knockout-mvc

knockout.js - data - Durandal/Knockout. Actualizar otra vista/modelo de vista



knockout js data bind text (1)

Suponiendo que tiene varias vistas secundarias y no desea introducir dependencias entre el shell y los niños, probablemente sea mejor usar el sistema de eventos de Durandal para esto. La vista de shell se convertiría en el editor y el niño vería a los suscriptores.

Consulte http://dfiddle.github.io/dFiddle-1.2/#/event-aggregator/dFiddle para obtener una demostración funcional.

publisher.js

define([''durandal/app''], function (app) { var message = ko.observable(); var canPublish = ko.computed(function () { return message() ? true : false; }); return { message: message, canPublish:canPublish, publish: function () { app.trigger(''sample:event'', message()); } }; });

suscriptor.js

define([''durandal/app''], function (app) { return { received: ko.observableArray([]), subscription:ko.observable(), subscribe: function () { var sub = app.on(''sample:event'').then(function(message) { this.received.push(message); }, this); this.subscription(sub); }, unsubscribe: function () { this.subscription().off(); this.subscription(null); } }; });

Otras opciones que podrían considerarse

  • un módulo compartido que devuelve un singleton con propiedades que deben compartirse entre padres / hijos. Drawback tiene que definirse como dependencia en todos los padres / hijos.
  • uno global, por ejemplo, myApp con propiedades ... Drawback: exponiendo un global

Durandal tiene una vista base llamada shell.

Agregué un cuadro de búsqueda en él para permitir que los usuarios de seguridad / control de calidad imiten a cualquier usuario del sistema. En el botón, haga clic en Deseo poder actualizar la vista de la vista que se muestra actualmente.

  • Vista de carcasa (azul) (roja)

¿Cómo iría, exponiendo una función en mi vista hija para poder llamarla desde el shell, o engancharme en el evento click button del shell desde la vista secundaria?

Pregunta:

¿Expone Durandal cualquier gancho que pueda utilizar para hacer burbujas o pasar eventos a diferentes vistas o contenedores principales?