Member 10289746 Ответов: 0

Как передать строковое значение из одной JS viewmodel в другую


У меня есть сайт, который получает данные, связанные с компанией, обратно из базы данных, например, финансы, ИТ и так далее.

для каждого отдела были отдельные столы. Затем я понял, что таблицы имеют одинаковые поля данных, поэтому я создал одну таблицу для хранения всех данных, и в этой таблице я создал поле pageIdentifier, которое я использую, чтобы определить, на какой странице Я нахожусь, и данные, относящиеся к этой странице.

Код имел разные модели представления для каждой страницы.(имел ITViewModel, FinanceViewModel) Затем я создал переменную pageIdentifier в каждой модели представления, которую отправляю обратно в сохраненный процесс, чтобы знать, какие данные я хочу вернуть.
самостоятельно.pageIdentifier = ко.наблюдаемые("оно"); //это позволит загрузить его данные у меня есть в БД

У меня были дублированные модели просмотра с дублированным кодом. Теперь я создал только одну модель представления, чтобы избавиться от дубликата кода. Поэтому у меня есть только masterViewModel (куда я загружаю другие модели представлений) и моя genericDataViewModel.

Кто-нибудь знает, как передать строковое значение из одной модели представления в другую модель представления? Я хочу передать строку из моей MasterViewModel в мою genericViewModel.

надеюсь, это имеет смысл.

Что я уже пробовал:

Я попытался создать переменные в своей модели MasterView:
в этом примере я попытался создать ИТ-строку для передачи в мою модель genericView.

self.navigateToGenericData = function () {
     masterVM.error("");
     masterVM.info("");
     self.identifierString = "IT";
     $('#content').hide();
     ko.cleanNode($("#content")[0]);
     $('#content').load("App/GenericData/Browse.html", function () {
         startProgress();
         $("#progressbar").show();
         ko.applyBindings(self.genericDataViewModel, $('#content')[0]);
         //self.genericDataViewModel.retrieveIdentifier('IT');
         self.genericDataViewModel.retrieveGenericDataList();
         self.genericDataViewModel.retrieveClassification();
         self.genericDataViewModel.retrieveLocationLookup();
         self.genericDataViewModel.retrieveDocumentStatus();
         completeProgress();

     });
     $('#content').show({ effect: "drop", direction: "up" });
 };


Мой genericViewModel
function GenericDataViewModel() {
    var self = this;

    self.identifier = ko.observable("IT");
    self.classification = ko.observable();
    self.location = ko.observable();
    self.documentStatus = ko.observable();


на месте самостоятельно.идентификатор = ко.наблюдаемые("это") я хочу получить значение из моей модели MasterView.

Я попробовал сделать что-то вроде self.identifier = $parent.IdentifierString, но не работает.

0 Ответов