Maqettaでレイアウトを作成しました。次に、レイアウトにロジックを追加します。そのため、Maqettaからワークスペース全体をダウンロードし、ファイル/ライブラリを新しいRailsプロジェクトにインポートしました。最初は、Railsがdojo、jsファイルをロードしないという問題がありましたが、その問題は解決しました。
今、私は別の問題を抱えています。ページはレンダリングされません。1つのウィジェット(ボタン)を除いてすべてコメントアウトしましたが、これは正常に機能します。しかし、これを元に戻すと、何も起こりません。残念ながら、dojoから警告やエラーなどは発生しません。
少し試した後、parseOnLoadプロパティを変更すると、警告が表示されます。
未処理のエラー:ウィジェットをid == appLayoutに登録しようとしましたが、そのIDはすでに登録されています
インクルードタグは次のとおりです。
<%= javascript_include_tag "lib/dojo/dojo/dojo", :'data-dojo-config' => "'async':true,
'packages':[{'name':'maqetta','location':'../../maqetta'},{'name':'gridx','location':'../gridx'},{'name':'clipart','location':'../../clipart'},{'name':'shapes','location':'../../shapes'},
{'name':'maqettaSamples','location':'../../../samples'},{'name':'zazl','location':'../../zazl'},{'name':'widgets','location':'../../custom'}]" %>
これがHTMLの部分です(私はそれを単純化しました、そして今私はチュートリアルからの例を使用しています):
<body class="claro" data-maq-flow-layout="true" data-maq-ws="collapse" id="myapp" data-maq-appstates="{}">
<input type="button" data-dojo-type="dijit.form.Button" intermediateChanges="false" label="Search" iconClass="dijitNoIcon" onclick="alert('hi');"></input>
<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(["dojo/parser","dojo/domReady!"], function(parser){
parser.parse();
});
私は今何時間も努力しています、そして私はまだ最初と同じくらい無知です。誰かが私が何を試すことができるか考えていますか?