2013-02-20 13 views

cevap

99

itibaren 1.11.0 den unutmayın lütfen, this.route yerine sadece this.resource kullanılır. Kaynak: http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *

ayrıntılı bir açıklama için bu post göz at.

Bu kaba bir (i biraz değiştirdiniz) Bu yazının özetidir: kaynak değişim ve rota beri hiç

bir sürü insan ikisinin anlamı ve nasıl hakkında karıştı vardır adlandırma etkilenir. - Bir şey (model)

  • rota -
  • Yani bu görünebilir bir rota ve kaynağı kullanarak bir yönlendirici demektir şeyle ilgili bir şey

    • kaynak: Fark şudur böyle:

      App.Router.map(function() { 
          this.resource("posts", { path: "/" }, function() { 
          this.route("new", { path: "/new" }); 
          }); 
          this.route("another", { path: "/another" }); 
      }); 
      

      Bu, kullanılan/yaratılan aşağıdaki yolları neden olacaktır:

      • PostsRoute, PostsController, PostsView
      • PostsIndexRoute, PostsIndexController, PostsIndexView
      • PostsNewRoute, PostsNewController, PostsNewView
      • AnotherRoute, AnotherController, AnotherView

      biz bu örnekte gördüğümüz gibi, kaynak etkisi Kullanılan/oluşturulan Kontrolörlerin, Rotaların ve Görünümlerin adlandırılması ("Yeni" rota "mesajlar" kaynağına bağlı olarak değerlendirilir). özgün kaynağa (tahriş olduğu için Patrick M doğru Açıklamalarda belirttiği gibi ben, değiştirilmiş) Cite: Eğer yepyeni ad yaratacak bir kaynak oluşturmak zaman

      Bu demektir. Bu ad alanı, kaynağından sonra adlandırılır ve tüm alt yollar buna eklenir.

      Güncelleme: kaynak comments yepyeni ad oluşturur Bu durumda

      App.Router.map(function() { 
          this.resource("posts", { path: "/" }, function() { 
          this.route("new", { path: "/new" }); 
          this.resource("comments", { path: "/comments" }, function() { 
           this.route("new", { path: "/new" }); 
          }); 
          }); 
          this.route("another", { path: "/another" }); 
      }); 
      

      : İç içe kaynakların

      ile daha karmaşık bir örnek birden iç içe kaynaklarla aşağıdaki daha karmaşık bir örneği ele alalım.Bu, sonuçta ortaya çıkan rotaların aşağıdaki gibi olacağı anlamına gelir. Güzergahı görebildiğiniz gibi, yorum kaynağı için denetleyici ve Görünüm kaynağı, ana yolun adıyla öntanımlı değildir. Bu, bir kaynağın başka bir kaynak içinde yerleştirilmesi anlamına gelir, ad alanını sıfırlar (= yeni bir ad alanı oluşturur).

      • PostsRoute, PostsController, PostsView
      • PostsIndexRoute, PostsIndexController, PostsIndexView
      • PostsNewRoute, PostsNewController, PostsNewView
      • CommentsRoute, CommentsController, CommentsView
      • CommentsNewRoute, CommentsNewController, CommentsNewView
      • AnotherRoute, bir başkaContro ller,

      Bu davranış Ember Docs da açıklanmıştır.

    +4

    Bu, Ember kılavuzlarında daha açık olmalıdır. İlk başta bu konsept ile kafam karışmıştı. –

    +0

    Mükemmel bir gönderinin mükemmel özeti. Ama içerdiğin son alıntı mantıklı değil: “Bu isim alanı bir" [...]. "." "Ne demek? Rota için sadece bir yer tutucu mu? Denetleyici | Görünüm? –

    +0

    Hey Patrick, bunu işaretlediğiniz için teşekkürler. Artık bir ipucu bulamadım. Bu nedenle iç içe geçmiş kaynakları ile daha karmaşık bir örnek ekledim. Bence bu alıntı, bu senaryoya atıfta bulundu. – mavilein

    İlgili konular