3

これらの route-info オブジェクトの構造に関するドキュメントを調べましたが、何も見つかりませんでした。Durandal は他の JS ライブラリを使用しているため、これが何に属しているのかわかりません (おそらくサミー?)。

私は 2 つの問題に直面しています: 問題 #1ルート情報にアイコンを使用したいのですが、タイトルまたはキャプションを使用してそれを実現できることがわかりました... 醜いオプション 1: キャプションにアイコン情報を使用する

{ route: 'dashboard', title: 'Dashboard', moduleId: 'viewmodels/dashboard', nav: true, caption: 'icon-dashboard' },

次のようなバインディングを行います。

<i data-bind="attr: { 'class': caption}"></i>
<a data-bind="attr: { href: hash }, html: title"></a>

または醜いオプション 2: モデルでアイコン html コードを使用する

{ route: 'dashboard', title: 'Dashboard', moduleId: 'viewmodels/dashboard', nav: true, caption: '<i class="icon-plus-sign"></i> Dashboard' }

バインディングは次のようになります。

<a data-bind="attr: { href: hash }, html: caption"></a>

データと表示の分離であるため、個人的にはオプション 1 が好きです。しかし、プロパティ (キャプション) は、それを配置するのに最適な場所ではありません... 他にどのようなオプションがありますか? 設定を使用している人を見ましたが、設定オプションとは何ですか?? 独自のアイコン プロパティを作成できますか?

その他の問題サブメニューの設計方法...親ルートを参照するプロパティがある場合は??

更新 2013 年 8 月 23 日子ルーターに関するこの情報を見つけました

4

1 に答える 1

4

オブジェクトに独自のプロパティを追加できますroute。これが JavaScript の良いところです。

あなたが言うように、次のように設定オブジェクトをルートに追加できます。

{ route: 'dashboard', title: 'Dashboard', moduleId: 'viewmodels/dashboard', nav: true, settings : { caption: 'icon-dashboard', another :'property'} }

そして、あなたが行っていたのと同じ方法でバインディングを行うだけです:

<i data-bind="attr: { 'class': settings.caption}"></i>
<a data-bind="attr: { href: hash }, text: title"></a>

UI でバインドされるすべてのオブジェクトに が含まれていることを確認するか、バインドにsettings.caption追加のロジックを追加して、プロパティが であるルート オブジェクトを管理しますundefined

于 2013-08-23T07:16:32.823 に答える