নতুন রাউটার এপিআই-তে কোনও রুট এবং সংস্থার মধ্যে পার্থক্য কী?


114

আমি এ Routeএবং এ এর মধ্যে পার্থক্যটি বোঝার চেষ্টা করছি Resource। আমি যেভাবে বুঝি তা অন্য অবজেক্টে কোনও অবজেক্টের Resourceসাব পাথ সেট করতে সহায়তা করে । তবে এটি অস্পষ্ট যখন আমি পথগুলির জন্য ডিফল্ট নেম ম্যাপিংয়ের কথা ভাবছি।RouteRoute

উত্তর:


101

দয়া করে মনে রাখবেন যে ১.১১.০.০ এর পরে 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" });
});

এর ফলে নিম্নলিখিত রুটগুলি তৈরি / ব্যবহৃত হচ্ছে:

  • পোস্টরোট, পোস্টসন্ট্রোলার, পোস্টস ভিউ
  • পোস্টস ইনডেক্স রুট, পোস্টস ইনডেক্স কনট্রোলার, পোস্টস ইন্ডেক্সভিউ
  • পোস্টসনউউউট, পোস্টসনউইনকন্ট্রোলার, পোস্টসেস নিউ ভিউ
  • আরেকটিরউটে, আরেকটি নিয়ন্ত্রণকারী, আরেকটি ভিউ

যেমন আমরা এই উদাহরণ থেকে দেখছি, সংস্থাগুলির নামকরণ, রুট এবং ভিউগুলি ব্যবহৃত / তৈরি হচ্ছে এমন নামকরণ প্রভাবিত করে ("নতুন" রুটটি "পোস্ট" সংস্থার অধস্তন হিসাবে বিবেচিত হয়)। মূল উত্স থেকে উদ্ধৃত করুন (আমি এটিকে সংশোধন করেছি, কারণ প্যাট্রিক এম মন্তব্যে সঠিকভাবে নির্দেশ করেছেন বলে এটি বিরক্তিকর হয়েছিল):

এর অর্থ আপনি যখনই কোনও সংস্থান তৈরি করবেন এটি একেবারে নতুন নেমস্পেস তৈরি করবে। সেই নেমস্পেসটির নাম সংস্থান হিসাবে দেওয়া হয়েছে এবং সমস্ত শিশু রুট এতে .োকানো হবে।

আপডেট: নেস্টেড রিসোর্স সহ আরও জটিল উদাহরণ

একাধিক নেস্টেড সংস্থান সহ নিম্নলিখিত আরও জটিল উদাহরণটি বিবেচনা করুন:

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রিসোর্সটি একেবারে নতুন নেমস্পেস তৈরি করে। এর অর্থ এই ক্ষেত্রে ফলাফল প্রাপ্ত রুটগুলি নিম্নলিখিত হবে। আপনি দেখতে পাচ্ছেন যে মন্তব্যগুলির সংস্থানগুলির জন্য রুট, নিয়ামক এবং দর্শন পিতামাতার রুটের নামের সাথে উপসর্গ করা হয়নি। এর অর্থ অন্য সংস্থার অভ্যন্তরে কোনও উত্সকে বাসা বাঁধাই নামস্থান পুনরায় সেট করে (= একটি নতুন নেমস্পেস তৈরি করে)।

  • পোস্টরোট, পোস্টসন্ট্রোলার, পোস্টস ভিউ
  • পোস্টস ইনডেক্স রুট, পোস্টস ইনডেক্স কনট্রোলার, পোস্টস ইন্ডেক্সভিউ
  • পোস্টসনউউউট, পোস্টসনউইনকন্ট্রোলার, পোস্টসেস নিউ ভিউ
  • মন্তব্যআরউট, কমেন্টস কন্ট্রোলার, কমেন্টস ভিউ
  • মন্তব্যনিউউরুট, মন্তব্যনিউজ কন্ট্রোলার, মন্তব্যনিউজ ভিউ
  • আরেকটিরউটে, আরেকটি নিয়ন্ত্রণকারী, আরেকটি ভিউ

এই আচরণটি এমবার ডক্সেও ব্যাখ্যা করা হয়েছে ।


4
এটি অ্যাম্বার গাইডগুলিতে আরও পরিষ্কার হওয়া উচিত। আমি প্রথমে এই ধারণাটি দ্বারা অবশ্যই বিভ্রান্ত হয়ে পড়েছিলাম।
গ্যাব্রিয়েল জি রায়

একটি দুর্দান্ত পোস্টের দুর্দান্ত সংক্ষিপ্তসার। কিন্তু গত উদ্ধৃতি আপনি অন্তর্ভুক্ত অর্থে দেখা যায় না: That namespace will have an " which [...]। কী "মানে? এটি কি রাস্তার জন্য কেবল স্থানধারক | নিয়ন্ত্রক | দেখুন?
প্যাট্রিক এম

আরে প্যাট্রিক, এটি দেখানোর জন্য ধন্যবাদ thanks আমি এর থেকে আর কোনও ক্লু বের করতে পারিনি। তাই আমি নেস্টেড রিসোর্সগুলির সাথে আরও জটিল উদাহরণ যুক্ত করেছি। আমি মনে করি এই উদ্ধৃতিটি এই দৃশ্যের উল্লেখ করেছে।
মাভিলাইন

এটা অনেক পরিষ্কার। মাভিলিন অতিরিক্ত উদাহরণের জন্য ধন্যবাদ।
প্যাট্রিক এম

আপনার উদাহরণ এবং এর মধ্যে পার্থক্য (যদি থাকে তবে) কী তা বিশদভাবে বলতে পারেন:App.Router.map(function() { this.route("posts", { path: "/" }, function() { this.route("new"); this.route("comments"}, function() { this.route("new"); }); }); this.route("another", { path: "/another" }); });
টিমো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.