कृपया ध्यान दें कि १.११.० के बाद से, this.route
इसके बजाय केवल उपयोग किया जाता है this.resource
। स्रोत: http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *
विस्तृत विवरण के लिए इस पोस्ट को देखें।
यह इस पोस्ट का एक मोटा सारांश है (मैंने थोड़ा संशोधित किया है):
जब से संसाधन में बदलाव और बहुत से लोग दो के अर्थ के बारे में भ्रमित हैं और वे नामकरण को कैसे प्रभावित करते हैं। यहाँ अंतर है:
- संसाधन - एक चीज़ (एक मॉडल)
- मार्ग - चीज़ के साथ कुछ करना
तो इसका मतलब है कि मार्ग और संसाधन का उपयोग करने वाला एक राउटर इस तरह दिख सकता है:
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
});
this.route("another", { path: "/another" });
});
इसके परिणामस्वरूप निम्नलिखित मार्ग बनाए जाएंगे / उपयोग किए जाएंगे:
- PostRoute, PostsController, PostsView
- PostsIndexRoute, PostsIndexController, PostsIndexView
- PostNewRoute, PostsNewController, PostsNewView
- अदरटाउट, अदरकंट्रोलर, अदर व्यू
जैसा कि हम इस उदाहरण से देखते हैं, संसाधन नियंत्रक, मार्गों और दृश्यों के नामकरण का उपयोग / निर्माण किया जा रहा है ("नया" मार्ग "पदों" संसाधन के अधीनस्थ के रूप में माना जाता है)। मूल स्रोत से उद्धृत करें (मैंने इसे संशोधित किया, क्योंकि यह पैट्रिक एम के रूप में परेशान था क्योंकि टिप्पणियों में सही ढंग से बताया गया है):
इसका मतलब यह है कि जब भी आप एक संसाधन बनाते हैं तो यह एक नया नामस्थान बनाएगा। उस नामस्थान को संसाधन के नाम पर रखा गया है और सभी बाल मार्गों को इसमें डाला जाएगा।
अद्यतन: नेस्टेड संसाधनों के साथ अधिक जटिल उदाहरण
कई नेस्टेड संसाधनों के साथ निम्नलिखित अधिक जटिल उदाहरण पर विचार करें:
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" });
});
इस मामले में संसाधन comments
एक नया नामस्थान बनाता है। इसका मतलब है कि इस मामले में परिणामी मार्ग निम्नलिखित होंगे। जैसा कि आप देख सकते हैं कि मार्ग के लिए मार्ग, नियंत्रक और दृश्य संसाधन मूल नाम के साथ उपसर्ग नहीं हैं। इसका मतलब है कि किसी अन्य संसाधन के भीतर संसाधन का नामकरण नामस्थान (= एक नया नामस्थान बनाता है) है।
- PostRoute, PostsController, PostsView
- PostsIndexRoute, PostsIndexController, PostsIndexView
- PostNewRoute, PostsNewController, PostsNewView
- CommentsRoute, CommentsController, CommentsView
- CommentsNewRoute, CommentsNewController, CommentsNewView
- अदरटाउट, अदरकंट्रोलर, अदर व्यू
इस व्यवहार को एम्बर डॉक्स में भी समझाया गया है ।