0

私はまだEmberJSの初心者で、1週間前に学び始めました。さて、使用したいテンプレートであるcontactsTemplate.htmlという名前の.htmlファイルがあります。以下のようなもの:

<script type="text/x-handlebars" data-template-name="contacts">
    <h2>My Contact List</h2>

    {{#each contact in contactList}}
        {{contact.name}}
    {{/each}}
</script>

偉大な。式を含むindex.htmlファイルがあります{{outlet}}。これは、すべての新しいコンテンツがこのスペースに読み込まれるということですよね?

<script type="text/x-handlebars" data-template-name="application">
    <h1>My Application</h1>

    {{outlet}}
</script>

わかりました... application という名前のこのテンプレートを管理するために、Controller オブジェクトを作成しました。

App.ApplicationController = Ember.ObjectController.extend({
    ...
});

連絡先テンプレートと同じ:

App.ContactsController = Ember.Controller.extend({
    contactList: []
});

このページ間の移行を管理するために、次の 2 つのルートを作成しました。

App.Router.map(function() {
    this.route("index", "/");
    this.route("contacts", "/contacts");
});

私の疑問は次のとおりです。

  1. この分離されたファイルをルートに関連付けるにはどうすればよいですか? つまり、ブラウザhttp://mysite.com/を呼び出すと、 index.html ファイルがロードされるはずです。http://mysite.com/#/contactsを呼び出すと、contactsTemplate.html が読み込まれます。

長いテキストで申し訳ありませんが、助けてくれてありがとう!

4

1 に答える 1

0

デフォルトではthis.route(routeName)、Router マップで宣言されたそれぞれ[routeName]Controllerに、、、[routeName]Routeおよびテンプレートが必要です。これは、 http://emberjs.com/guides/concepts/naming-conventions/[routeName]で説明されている規則に従います。

あるルートから別のルートに変更するには、次を使用できます。

  • コントローラー内部this.transitionToRoute(routeName)
  • ルートの内部this.transitionTo(routeName)
  • テンプレートの内部 {{#link-to "routeName" }}My route{{/link-to}}

詳細については、ルーティング ガイドhttp://emberjs.com/guides/routingを参照してください。

役立つことを願っています

于 2013-09-26T13:21:05.963 に答える