Я использую поддержку публикации/подписки для нокаута. Я понимаю, что мне нужно сделать следующее, чтобы получить возможность отправлять/считаны из топика:Может несколько замещающих сообщений в ту же тему в нокауте pubsub
var postbox = ko.subscribable();
var vendorTopic = 'vendorInfo';
//View model 1
//Subscribe
ko.subscribable.fn.subscribeTo = function(topic) {
postbox.subscribe(this, null, topic);
return this; //support chaining
};
this.selectedVendor = ko.observableArray().subscribeTo(vendorTopic);
//View model 2
//Publish
ko.subscribable.fn.publishOn = function (topic) {
this.subscribe(function (newValue) {
postbox.notifySubscribers(newValue,topic);
});
return this; //support chaining
};
this.vendor = ko.observableArray([]).publishOn(vendorTopic);
Но, если мой viewmodel2 было 2 наблюдаемыми, и я хочу, чтобы иметь возможность получить доступ к обоим в моем viewmodel1, делать я нужно создать две темы - по одному для каждого наблюдаемого? Это звучит плохой дизайн, если у моего компонента есть 15 наблюдаемых, которые я хочу использовать в другом компоненте.
Но я не нашел другого полезного примера в Интернете. Любая помощь приветствуется!
Как раз мысль, мы должны быть в состоянии отправить массив объектов, содержащих новые значения наблюдаемых, в пару пар ключ-значение, а затем внутри viewmodel1 мы можем проанализировать объект, правильно? – gkb