https://github.com/dFiddle/dFiddle-2.0/blob/gh-pages/app/masterDetail/wizard/index.js
このウィザードを見ると、step1、step2、および step3 を作成する index.js に変数 (ウィザードの編集モードまたは追加モードなど) を渡す方法を自問します。
すべてのステップを保持するメインウィザードである index.js は durandal によって動的に作成されるため、このデータをどこに渡すことができるかわかりません。
では、どのように index.js にデータを渡して、service.create() または service.edit() 関数を実行して別のデータなどを取得するかを決定できます...
アップデート
define(['durandal/app','plugins/dialog', 'knockout', 'services/dataservice', 'plugins/router', 'moment'], function (app, dialog, ko, dataservice, router, moment) {
var SchoolyearDialog = function () {
var self = this;
self.activeScreen = ko.observable('viewmodels/SchoolyearBrowser'); // set the schoolyear browser as default module
app.on('startWizard').then(function (obj) {
self.activeScreen(obj.moduleId);
});
app.on('dialog:close').then(function (options) {
dialog.close(self, options );
});
self.closeDialog = function () {
dialog.close(self, { isSuccess: false });
}
}
SchoolyearDialog.show = function () {
return dialog.show(new SchoolyearDialog());
};
SchoolyearDialog モジュールは、表示される画面を制御します。また、SchoolyearDialog は startWizard イベントをサブスクライブしています。createWizard ボタンを押すと、startWizard イベントが発生します。startWizardEdit などの別のイベントを起動する editWizard ボタンもあります。activeScreen は、デフォルトのモジュール ID に設定されます: 'viewmodels/SchoolyearBrowser' またはモジュール ID: 'viewmodels/SchoolyearWizard' に設定され、ウィザードが読み込まれます。
activeScreen プロパティに値 (viewMode) を渡し、ステップを保持するウィザード モジュール内でそれを取得することは可能ですか?