【发布时间】:2013-10-11 01:08:45
【问题描述】:
请帮我解决这个问题。我正在为我的 spa 应用程序使用 durandal 2.0、requirejs、knout 和微风。我有一个视图(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 个父视图之间导航时。我从第一个父视图中的日期选择器中选择的值似乎在其他两个视图中被识别。当从 3 个不同的父视图导航时,我如何实现选项视图中的逻辑,就像它具有不同的 id 一样。提前致谢。
【问题讨论】:
标签: javascript jquery knockout.js single-page-application