0

新しいルーターAPI( commit 6a165ad )を使用しようとしていますが、いくつか問題があります。

このルーターを考えると:

Router.map(function(match) {
  match("/posts").to("posts", function(match) {
    match("/new").to('new', function(match) {
      match("/author").to('author');
    });
  });
});

newルートに移行しようとしています。

new.indexの使用: this.transitionTo('new.index')

それは機能しますが、ご覧のとおり、ルート名は実際には明示的ではありません(新しい投稿用であるかどうかさえわかりません)。したがって、それは実行可能な解決策ではありません。

posts.newの使用: this.transitionTo('posts.new')

私はそれが機能することを望みましたが、エラーがスローされます:

ルートposts.newが見つかりませんでした。

インデックスへの移行は自動的に行われると思いましたが、そうではないようです。

カスタマイズされたルート名の使用:

上記で指定されたコミット以降、Emberではカスタムルートの命名が可能です。以前の試みが機能しないため、newルートを強制的に実行しようとしましposts.newたが、それでも機能しません(そうであった場合は理想的ですfoo.new)。

ルートがネストされているカスタマイズされたルートに移動することはできないようです。

TL; DR

  • newルートに移行したい(そして指定したいposts)。それはどのように行われるべきですか?
  • ルーターv2.1より前は、子がないto(つまりmatch("/posts", function(match) { ... }))ルートがありましたが、まだ機能していますか?もしそうなら、その子供たちの名前は何ですか?
4

1 に答える 1

1

これは実際にはEmberのバグでした。は暗黙的であるためindex、明示的に指定する必要はありません。

バグはmasterで修正されました。

子ルートがあるルートに移動する場合はtransitionTo、ルートの名前を指定する必要があります。そうすると、Emberが自動的にを追加indexします。

于 2013-01-12T00:56:53.907 に答える