Пожалуйста, помогите мне в этом вопросе. Я использую durandal 2.0, requirejs, нокаут и бриз для моего спа-приложения. У меня есть view (options.html), который я хочу использовать в качестве пользовательского элемента управления для 3 других представлений (view1.html, view2.html и view3.html). Ниже приведено представление вида опций.
define(['durandal/app', 'services/logger', 'knockout', 'jquery', 'services/unitofwork'], function (app, logger, ko, $, unitofwork) {
var uow = unitofwork.create();
var substatus = ko.observableArray();
var vm = {
status: substatus,
activate: activate,
startDate: ko.observable(),
endDate: ko.observable(),
attached: function (view, parent) {
var startdatepicker = $(view).find('#startdatediv').datepicker();
var enddatepicker = $(view).find('#enddatediv').datepicker();
var starttxt = $(view).find('#txtstartDate');
var endtxt = $(view).find('#txtendDate');
startdatepicker.on('changeDate', function (ev) {
starttxt.text(startdatepicker.datepicker('getAsText'));
if ((date && date.valueOf()) > (endDate && endDate.valueOf())) {
$('#alert').show().find('strong').text('The start date cannot be after the end date');
} else {
$('#alert').hide();
startDate = date;
}
startdatepicker.datepicker('hide');
});
enddatepicker.on('changeDate', function (ev) {
starttxt.text(startdatepicker.datepicker('getAsText'));
if ((date && date.valueOf()) > (endDate && endDate.valueOf())) {
$('#alert').show().find('strong').text('The start date cannot be after the end date');
} else {
$('#alert').hide();
startDate = date;
}
enddatepicker.datepicker('hide');
});
console.log(startdatepicker.html());
console.log(enddatepicker.html());
}
};
return vm;
function activate() {
return true;
}
function fail(error) {
logger.logError(msg, error, "", true);
}
function getPredicate() {
var predicate = new breeze.Predicate.create("LookupId", "==", 1);
console.log(predicate);
return predicate;
}
});
Моя проблема теперь, когда я пытаюсь перемещаться между 3 родительскими представлениями. Кажется, что значение i, выбранное из datepicker в первом родительском представлении, распознается в двух других представлениях. Как достичь логики, где в представлении вариантов действует, как будто у него есть другой идентификатор при навигации из трех разных родительских представлений. Заранее спасибо.
Вам нужно общаться между режимами просмотра (родительский vm для параметров vm и наоборот) Существует несколько способов