1

どういうわけか、最も単純な例でも、別の状態/ルートに遷移しようとするとビューが消えます。

私のインデックスルートは次のようになります。

--Application-------------------------------
| --Header-------------------------------- |
| | --ViewA----------------------------- | |
| | | View A!                          | | |
| | |__________________________________| | |
| |                                      | |
| | --ViewB----------------------------- | |
| | | View B!                          | | |
| | |__________________________________| | |
| |______________________________________| |
|                                          |
| --Main---------------------------------- |
| | I stay here, no matter what!         | |
| |______________________________________| |
|__________________________________________|

「次へ」状態になるとすぐに、ViewB が消え、次のようになります。

--Application-------------------------------
| --Header-------------------------------- |
| | --ViewA----------------------------- | |
| | | View A!                          | | |
| | |__________________________________| | |
| |______________________________________| |
|                                          |
| --Main---------------------------------- |
| | I stay here, no matter what!         | |
| |______________________________________| |
|__________________________________________|

この動作は、このサンプル アプリケーションhttp://jsfiddle.net/SAra5/4/で確認できます。

4

2 に答える 2

0

IndexRoute意図した動作についてはわかりませんが、すべてのルートで同じものが必要なため、抽象化することをお勧めします。そうしないと、削除されます: http://jsfiddle.net/SAra5/5/

ただし、あなたの例は複雑に見えます。あなたの解決策はにあると思います{{render}}。ここで私の投稿を参照してください: emberjs ハンドルバー テンプレートのさまざまなレンダリング手法

于 2013-02-15T11:26:35.180 に答える
0

新しいルートで何もしないように指定しないと、混乱してすべてのアウトレットがレンダリングされないように見えます。物事を適切に機能させる方法は、ルートに再度レンダリングさせたいものをNextRoute.

App.NextRoute = Ember.Route.extend({
        renderTemplate: function () {
        this.render('header', {'outlet':'header', 'into':'application'});
        this.render('main', {'outlet':'main', 'into':'application'});

        this.render('viewB', {'outlet':'viewB', 'into':'header'});
        this.render('viewA', {'outlet':'viewA', 'into':'header'});
    }
});

への変更を行う前に index ルートでと交換this.render('viewB', {'outlet':'viewB', 'into':'header'});すると、viewB! のみがレンダリングされることがわかります。変でしょ?現時点では、それがバグなのか機能なのかはわかりません。this.render('viewA', {'outlet':'viewA', 'into':'header'});NextRoute

于 2013-02-15T11:11:36.633 に答える