私は最初から良い習慣を使って道場プロジェクトをゼロから始めました。私はdojoツールキットを初めて使用するので、たくさんのドキュメントやサンプルを見て回っています。これにより、たくさんのすばらしいものが残りますが、将来の開発(またはアドオン)用のアーキテクチャを実装する方法はわかりません。Webを検索して、この道場ボイラープレートプロジェクトを見つけました。これは、すべてをまとめるのに良いスタートのようですが、もっと何かが欲しかったので、MVCパターンを実装したいと思いました(JAVAとRuby onrailsdevの経験が豊富です。 )私のアプリケーションで、この非常にクールな例に出くわしました。それで、私はこのようなものを作成しました。これは私のプロジェクトを整理するためのかなり合法的な方法のようです。私が間違っている場合は、私を訂正してください..またはあなたはより良いアプローチを持っています。
今、私は始める準備ができています。dojoツールキットのWebサイトでいくつかのチュートリアルを試しました。ページが1つしかない場合は、見事に実行できます。しかし今、私はこのレイアウトチュートリアルを自分のアプリケーションにどのように実装するのか疑問に思っていました。この種のレイアウトをアプリケーションのメインレイアウトにしたいので(そのため、これらのコードをindex.htmlに入れようとしました)、
<div
id="appLayout" class="demoLayout"
data-dojo-type="dijit.layout.BorderContainer"
data-dojo-props="design: 'headline'">
<div
class="centerPanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'center'">
<div>
<h4>Group 1 Content</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div>
<h4>Group 2 Content</h4>
</div>
<div>
<h4>Group 3 Content</h4>
</div>
</div>
<div
class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'top'">Header content (top)</div>
<div
id="leftCol" class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'left', splitter: true">Sidebar content (left)</div>
</div>
しかし、それは得られません:
require(["dijit/layout/BorderContainer", "dijit/layout/TabContainer",
"dijit/layout/ContentPane", "dojo/parser"]);
したがって、結果は基本的にdivと私のテキストになりますが、レイアウトはまったくありません。私は何が欠けていますか?
私の解決策:インデックス(「コンテナ」など)にdivのみを作成し、ローダー(app / run.js)(mainと呼ばれる別のスクリプトを呼び出す)から彼にフィードします。このmain.jsファイルはこの概念を使用していますAMD(私は慣れ始めています)の、そして彼は私のアプリケーションのインスタンスの作成を処理しています。したがって、たとえば、レイアウトに特定のビューを作成して、そのファイルにインスタンス化することができます...