0

そのため、ログイン ボタンから、ブロックinitialize()を含む関数を実行するダッシュボードにルーティングする Web アプリケーションがあります。document.ready()問題は、バックボーン上でブロックが実行されていないrouteように見えることです。document.ready()クリアするコードを次に示します。

私のランディングページビューからのイベントは次のとおりです。

events:
    'click .pure-menu .signin': 
      () ->
        application.router.navigate('dash', {trigger: true})

次に、アプリケーションをダッシュ​​ボード ビューにルーティングします。

module.exports = class DashView extends Backbone.Marionette.ItemView
    id: 'dash-view'
    template: template

    initialize: ->

        $ ->
            $(".gridster ul").gridster(
                widget_margins: [10, 10]
                widget_base_dimensions: [140, 140]
            )

document.ready()dom が読み込まれると実行されるコードを含む jQueryブロックがあります。

私はGridsterライブラリを使用していますが、Gridster グリッドが初期化されないため、ページがルーティングされるときにこのコードは実行されません。

ページを更新すると、すべてが期待どおりに機能します。

ページがルーティングされると、jQuery は「dom loaded」イベントを取得しないため、ブロックが実行されないと思いますか? わからない。どんな助けでも大歓迎です。

ハックを使用して解決するには、ページを更新してバックボーンにルーティングする方法を知っている人はいますか?

4

1 に答える 1

2

onDomRefreshの代わりにメソッドにコードを追加する必要があると思いますinitialize

ビューが作成されるとすぐに Initialize が呼び出されるため、その時点ではビューの要素は DOM に配置されませんが、ビューがレンダリングされた後、DOM に表示された後、または再レンダリングされた後に onDomRefresh がトリガーされるため、それはあなたのニーズにより適しているかもしれません。

ドキュメントで確認できます: Marionette's view

于 2013-07-31T07:47:41.047 に答える