DurandalJS と KnockoutJS を使用した SPA があります。最初のページでアイテムをクリックできるようにしてから、そのアイテムの 2 番目のページを読み込みます。これは、セカンダリ ページにアクセスする方法です。
var goToDetails = function (selectedDailyLog) {
var url = '#/dailylog/' + selectedDailyLog.id();
//durandal/plugins/router is sammy.js
router.navigateTo(url);
};
2 番目のページで ko.applyBindings を呼び出そうとすると、次のエラーが継続的に発生します。
不明なエラー: バインドを解析できません。メッセージ: ReferenceError: ルーターが定義されていません。バインディング値: foreach: router.visibleRoutes
セカンダリ ページの JavaScript は次のとおりです。
define(['config', 'durandal/system', 'services/logger', 'services/dataservice'],
function (config, system, logger, dataservice) {
var owners = ko.observableArray();
var selectedOwner = ko.observable();
var dailyLog = ko.observable({ started: 'one' });
var routeCriteria;
//#region Internal Methods
function activate(routeData) {
routeCriteria = routeData;
dataservice.getOwners(owners);
logger.log('Daily Log Activated with Id: ' + routeData.id.toString(), null, 'dailylog', true);
return true;
}
var vm = {
activate: activate,
title: 'Daily Log',
owners: owners,
selectedOwner: selectedOwner,
dailyLog:dailyLog
};
ko.applyBindings(vm);
return vm;
});
助けてくれてありがとう。