কৌণিক-ui এ-রাউটার ব্যবহার করে, আমি কিভাবে ব্যবহার করতে পারেন অন্যথায় পদ্ধতি উপর $ stateProvider বা কিভাবে আমি এটা সব সময়ে ব্যবহার করতে পারি?
কৌণিক-ui এ-রাউটার ব্যবহার করে, আমি কিভাবে ব্যবহার করতে পারেন অন্যথায় পদ্ধতি উপর $ stateProvider বা কিভাবে আমি এটা সব সময়ে ব্যবহার করতে পারি?
উত্তর:
আপনি কেবল ব্যবহার করতে পারবেন না $stateProvider
।
আপনাকে ইনজেক্ট করতে হবে $urlRouterProvider
এবং এর মতো একটি কোড তৈরি করতে হবে:
$urlRouterProvider.otherwise('/otherwise');
/otherwise
URL যথারীতি একটি রাষ্ট্র উপর নির্ধারণ করা আবশ্যক:
$stateProvider
.state("otherwise", { url : '/otherwise'...})
এই লিঙ্কটি দেখুন যেখানে কস্পারলিং ব্যাখ্যা করে
$stateProvider
। আপনি যদি কেবল কোনও টেম্পলেট প্রদর্শন করতে চান তবে এটি পুনর্নির্দেশ নয় তবে এটি কম কাজ। আমি @ জুয়ান-হার্নান্দেজের উত্তর পছন্দ করি।
otherwise
(এই ক্ষেত্রে '/otherwise'
) এ পাস করা মানের সাথে কি রাষ্ট্রের নাম (প্রথম প্যারামিটার .state
) বা url
বিকল্পের মানটির সাথে মিল পাওয়া যায় ?
আপনি সমস্ত সিনট্যাক্স ( ) $stateProvider
ব্যবহার করে ক্যাচটি ব্যবহার করতে পারেন "*path"
। নিম্নলিখিতগুলির মতো আপনার তালিকার নীচে আপনাকে একটি রাষ্ট্রের কনফিগারেশন যুক্ত করতে হবে:
$stateProvider.state("otherwise", {
url: "*path",
templateUrl: "views/error-not-found.html"
});
সমস্ত অপশন https://github.com/angular-ui/ui-router/wiki/URL- রাউটিং#regex- পরিমিতিগুলিতে ব্যাখ্যা করা হয়েছে ।
এই বিকল্পের দুর্দান্ত জিনিসটির বিপরীতে $urlRouterProvider.otherwise(...)
, হ'ল আপনি কোনও অবস্থান পরিবর্তন করতে বাধ্য হবেন না।
you're not forced to a location change
?
/this/does/not/exist
তবে URL টি ঠিক সেইভাবে ঠিকানা বারে থাকবে। অন্যান্য সমাধান আপনাকে নিয়ে যাবে/otherwise
আপনি অন্যথায় ফাংশনটিতে ম্যানুয়ালি $ রাজ্যের ইনজেকশনও করতে পারেন, যা আপনি নন-url অবস্থায় নেভিগেট করতে পারেন। এটিতে ব্রাউজারের অ্যাড্রেসবারটি পরিবর্তন না করার সুবিধা রয়েছে যা পূর্ববর্তী পৃষ্ঠায় ফিরে যেতে পরিচালিত করতে সহায়ক।
$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get('$state');
$state.go('defaultLayout.error', {
title: "Page not found",
message: 'Could not find a state associated with url "'+$location.$$url+'"'
});
});
আমি কেবল ইতিমধ্যে সরবরাহ করা দুর্দান্ত উত্তরগুলি পেতে চাই। @uirouter/angularjs
শ্রেণীর সর্বশেষ সংস্করণটিকে UrlRouterProvider
শ্রেণিবদ্ধ হিসাবে চিহ্নিত করা হয়েছে। তারা এখন UrlService
পরিবর্তে ব্যবহারের পরামর্শ দেয় । আপনি নিম্নলিখিত পরিবর্তন সঙ্গে একই ফলাফল অর্জন করতে পারেন:
$urlService.rules.otherwise('/defaultState');
অতিরিক্ত পদ্ধতি: https://ui-router.github.io/ng1/docs/1.0.16/interfaces/url.urlrulesapi.html
ঠিক আছে, নির্বোধ মুহূর্তটি যখন আপনি বুঝতে পারবেন যে আপনি জিজ্ঞাসা করা প্রশ্নটি ইতিমধ্যে নমুনা কোডের প্রথম লাইনে উত্তর দেওয়া হয়েছে! স্যাম্পল কোডটি একবার দেখুন।
angular.module('sample', ['ui.compat'])
.config(
[ '$stateProvider', '$routeProvider', '$urlRouterProvider',
function ($stateProvider, $routeProvider, $urlRouterProvider) {
$urlRouterProvider
.when('/c?id', '/contacts/:id')
.otherwise('/'); // <-- This is what I was looking for !
....
গৃহীত উত্তর রেফারেন্স angular-route
সম্পর্কে জিজ্ঞেস করে ui-router
। গৃহীত উত্তরটিতে "একঘেয়েটি" ব্যবহার করা হয় $routeProvider
, যার জন্য ngRoute
মডিউল প্রয়োজন (যেখানে ui-router
প্রয়োজন needsui.router
মডিউল)
সর্বোচ্চ রেট উত্তর ব্যবহার $stateProvider
পরিবর্তে, এরকম কিছু বলেছেন .state("otherwise", { url : '/otherwise'... })
, কিন্তু আমি এর "অন্যথায়" কোনো উল্লেখ খুঁজে পাচ্ছি না ডকুমেন্টেশন এটা লিঙ্ক । তবে, আমি দেখতে পাচ্ছি যে এই উত্তরে$stateProvider
উল্লেখ করা হয়েছে যেখানে এটি বলে:
আপনি কেবল ব্যবহার করতে পারবেন না
$stateProvider
। আপনাকে ইনজেকশন দেওয়া দরকার$urlRouterProvider
আমার উত্তরটি আপনাকে এখানে সহায়তা করতে পারে। আমার জন্য, এটি ঠিক এইভাবে ব্যবহার করার জন্য যথেষ্ট ছিল $urlRouterProvider
:
my_module
.config([
, '$urlRouterProvider'
, function(
, $urlRouterProvider){
//When the url is empty; i.e. what I consider to be "the default"
//Then send the user to whatever state is served at the URL '/starting'
//(It could say '/default' or any other path you want)
$urlRouterProvider
.when('', '/starting');
//...
}]);
আমার পরামর্শ ui-router
ডকুমেন্টেশনের সাথে সামঞ্জস্যপূর্ণ , ( এই নির্দিষ্ট সংশোধন ), যেখানে এটির অনুরূপ ব্যবহার অন্তর্ভুক্ত রয়েছে। when(...)
পদ্ধতি (ফাংশনটিতে প্রথম কল):
app.config(function($urlRouterProvider){
// when there is an empty route, redirect to /index
$urlRouterProvider.when('', '/index');
// You can also use regex for the match parameter
$urlRouterProvider.when(/aspx/i, '/index');
})
$stateProvider.otherwise
, সুতরাং এটি আমার সাহায্য করবে)