0

URL を取得したい: localhost#/234/23/456/524jk53 (/one_id/two_id/three_id/four_id)

Stat.Router.map(function () {
    this.resource('one', {path: '/:one_id'}, function(){
            this.resource('two', {path: '/:two_id'}, function(){
                this.resource('three', {path: '/:three_id'}, function () {
                    this.resource('four', {path: '/:four_id'});
                });
            });
        });
});

テンプレートの分離:

 <script type="text/x-handlebars">
    {{outlet one}}<br>
    {{outlet two}}<br>
    {{outlet three}}<br>
    {{outlet}}
 </script>
<script type="text/x-handlebars" data-template-name="one">
  one, to {{linkTo 'two'}}two{{/linkTo}}
</script>
<script type="text/x-handlebars" data-template-name="two">
  two, to {{linkTo 'three'}}three{{/linkTo}} 
</script>
<script type="text/x-handlebars" data-template-name="three">
  three, to {{linkTo 'four'}}four{{/linkTo}} 
</script>
<script type="text/x-handlebars" data-template-name="four">
  four
</script>

ルート:

App.oneRoute = Em.Route.extend({
    renderTemplate: function() {
        this.render('two', {outlet: 'two'});
        this.render('three', {outlet: 'three'});
        this.render('four', {outlet: 'four'});
    }
});

エラーがあります: アサーションに失敗しました: 未定義のオブジェクトで 'id' を使用して get を呼び出すことはできません。

このアプリケーションの階層の router.map を書くのを手伝ってください

4

1 に答える 1

1

では、まず/fromを削除し{ path: '/:dynamic_id' }ます。

次に、linkToヘルパーで参照しているルート内で動的セグメントが予期される場合、モデル (または他の) オブジェクトを追加パラメーターとして linkTo ヘルパーに各動的セグメントのコンテキストとして渡す必要があることを理解する必要があります。

これがおそらくエラーが発生する理由です。ルーターは次のようになります。

Stat.Router.map(function () {
    this.resource('one', {path: ':one_id'}, function(){
            this.resource('two', {path: ':two_id'}, function(){
                this.resource('three', {path: ':three_id'}, function () {
                    this.resource('four', {path: ':four_id'});
                });
            });
        });
});

テンプレートでは、セグメントのコンテキストを渡す必要があります。たとえば、次のようになります。

{{linkTo 'two' modelOne modelTwo}}Hello World!{{/linkTo}}

とにかく、あなたはあなたの質問をいくらか洗練する必要があると思います。正確に何を達成しようとしていますか?serialize動的セグメントがモデル ID でない場合は、関連するルート ファイルでコールバックをオーバーライドすることを検討する必要がある場合があります。

于 2013-08-16T13:12:43.303 に答える