<a ng-href="#" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
আমি পৃষ্ঠাটি পুনরায় লোড করতে চাই। কিভাবে আমি এটি করতে পারব?
<a ng-href="#" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
আমি পৃষ্ঠাটি পুনরায় লোড করতে চাই। কিভাবে আমি এটি করতে পারব?
উত্তর:
আপনি পরিষেবার reload
পদ্ধতিটি ব্যবহার করতে পারেন $route
। $route
আপনার নিয়ামক ইনজেক্ট করুন এবং তারপরে reloadRoute
আপনার একটি পদ্ধতি তৈরি করুন $scope
।
$scope.reloadRoute = function() {
$route.reload();
}
তারপরে আপনি এটি লিঙ্কে এটি ব্যবহার করতে পারেন:
<a ng-click="reloadRoute()" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
এই পদ্ধতিটির ফলে বর্তমান রুটটি পুনরায় লোড হবে। আপনি যদি একটি সম্পূর্ণ রিফ্রেশ করতে চান তবে আপনি ইনজেকশন $window
এবং এটি ব্যবহার করতে পারেন:
$scope.reloadRoute = function() {
$window.location.reload();
}
পরে সম্পাদনা (ইউআই-রাউটার):
জেমসএডিএডওয়ার্ডস এবং ডানক তাদের উত্তরে যেমন উল্লেখ করেছেন, আপনি যদি কৌনিক-ইউআই / ইউআই-রাউটার ব্যবহার করছেন তবে আপনি বর্তমান রাষ্ট্র / রুটটি পুনরায় লোড করতে নীচের পদ্ধতিটি ব্যবহার করতে পারেন। এর $state
পরিবর্তে কেবল ইনজেক্ট করুন $route
এবং তারপরে আপনার কাছে রয়েছে:
$scope.reloadRoute = function() {
$state.reload();
};
window
বিষয়টিকে সহজ পরীক্ষার জন্য এবং উপহাসের$window
জন্য পরিষেবার মাধ্যমে উপলব্ধ করা হয়েছে , আপনি এরকম কিছু দিয়ে যেতে পারেন:
$scope.reloadPage = function(){$window.location.reload();}
এবং :
<a ng-click="reloadPage" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
পার্শ্ব নোট হিসাবে, আমি মনে করি না $ রুট.রেলোড () আসলে পৃষ্ঠাটি পুনরায় লোড করে তবে কেবল রুট ।
$window
পরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি window
।
$window
, মূলত এটি কারণ reloadPage
যখন এটি ব্যবহার করা হয় (ভাল) পরীক্ষামূলক হয় $window
।
location.reload();
কৌতুক করে।
<a ng-click="reload()">
$scope.reload = function()
{
location.reload();
}
রুট বা কোনও কিছুর প্রয়োজন নেই কেবল সাদামাটা পুরানো জেএস
অ্যাঙ্গুলারগুলি যদি আরও উন্নত ইউআই-রাউটার ব্যবহার করে থাকে যা আমি অবশ্যই সুপারিশ করি তবে আপনি এখন সহজভাবে ব্যবহার করতে পারেন:
$state.reload();
যা মূলত ডানকের উত্তর হিসাবে একই কাজ করছে।
অসীম লুপ এড়াতে আমার সমাধানটি ছিল অন্য একটি রাজ্য তৈরি করা যা পুনঃনির্দেশটি তৈরি করেছে:
$stateProvider.state('app.admin.main', {
url: '/admin/main',
authenticate: 'admin',
controller: ($state, $window) => {
$state.go('app.admin.overview').then(() => {
$window.location.reload();
});
}
});
কৌণিক 2+
আমি কৌনিক 2+ অনুসন্ধান করার সময় এটি পেয়েছি, সুতরাং এখানে উপায়:
$window.location.reload();
এটি কেবলমাত্র ব্যবহারের পক্ষে যথেষ্ট সহজ $route.reload()
(আপনার নিয়ামকটিতে $ রুটটি ইনজেকশন করতে ভুলবেন না) তবে উদাহরণ থেকে আপনি "এনজি-href" এর পরিবর্তে "href" ব্যবহার করতে পারেন:
<a href="" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
অ্যাংুলার {{}} of ট্যাগগুলির বিষয়বস্তু প্রতিস্থাপন করার আগে ব্যবহারকারীকে ক্লিক করার কারণে অবৈধ লিঙ্কগুলি থেকে তাদের রক্ষা করতে আপনার কেবল এনজি-হ্রেফ ব্যবহার করতে হবে।
কৌণিক 1.5 তে - উপরোক্ত কিছু সমাধানের পরে কেবলমাত্র কোনও পৃষ্ঠা পুনরায় রিফ্রেশ না করে কেবল ডেটা পুনরায় লোড করতে চাইছে, আমার সঠিকভাবে ডেটা লোড করতে সমস্যা হয়েছিল had যদিও আমি লক্ষ করেছি, যখন আমি অন্য কোনও রুটে যাই এবং তারপরে আমি স্রোতে ফিরে আসি, সবকিছু ঠিকঠাক হয়, তবে যখন আমি কেবল বর্তমান রুটটি ব্যবহার করে পুনরায় লোড করতে চাই $route.reload()
, তখন কিছু কোড সঠিকভাবে কার্যকর হয় না। তারপরে আমি নিম্নলিখিত উপায়ে বর্তমান রুটে পুনঃনির্দেশ করার চেষ্টা করেছি:
$scope.someFuncName = function () {
//go to another route
$location.path('/another-route');
};
এবং মডিউল কনফিগারেশনে, অন্যটি যুক্ত করুন when
:
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/first-page', {
templateUrl: '/first-template',
controller: 'SomeCtrl'
}).when('/another-route', {//this is the new "when"
redirectTo: '/first-page'
});
}])
এবং এটি আমার পক্ষে ঠিক কাজ করে। এটি পুরো পৃষ্ঠাটি রিফ্রেশ করে না, তবে কেবলমাত্র বর্তমান নিয়ামক এবং টেমপ্লেটটিকে পুনরায় লোডের কারণ করে। আমি জানি এটি কিছুটা হ্যাকি, তবে এটিই ছিল আমার একমাত্র সমাধান।
var reload = $location.url(); $location.url(''); $timeout(function() { $location.url(reload); });
; এলোমেলো রুট তৈরি করার দরকার নেই। তবে আপনার জন্য কী কোডটি পুনরায় মূল্যায়ন করে না তা দেখতে আকর্ষণীয় হবে। দেখে মনে হচ্ছে এটি এমনকি redirectTo
গুলি এবং সাধারণ resolve
ক্রিয়াকলাপগুলি পুনরায়$route.reload()
সম্পাদন করে (কনসোল.লগের দিকে দেখুন)।
<a title="Pending Employee Approvals" href="" ng-click="viewPendingApprovals(1)">
<i class="fa fa-user" aria-hidden="true"></i>
<span class="button_badge">{{pendingEmployeeApprovalCount}}</span>
</a>
এবং নিয়ামক মধ্যে
$scope.viewPendingApprovals = function(type) {
if (window.location.hash.substring(window.location.hash.lastIndexOf('/') + 1, window.location.hash.length) == type) {
location.reload();
} else {
$state.go("home.pendingApproval", { id: sessionStorage.typeToLoad });
}
};
এবং রুট ফাইল
.state('home.pendingApproval', {
url: '/pendingApproval/:id',
templateUrl: 'app/components/approvals/pendingApprovalList.html',
controller: 'pendingApprovalListController'
})
সুতরাং, যদি ইউআরএল-এ পাস করা আইডিটি অ্যাঙ্করটি ক্লিক করে কল করা ফাংশন থেকে আসা হিসাবে একই হয়, তবে কেবল পুনরায় লোড করুন, অন্যথায় অনুরোধ করা রুটটি অনুসরণ করুন।
দয়া করে আমাকে এই উত্তরটি উন্নত করতে সহায়তা করুন, যদি এটি সাহায্য করে। যাইহোক, পরামর্শ স্বাগত।
এটি জাভাস্ক্রিপ্টে পুনরায় লোড () পদ্ধতিতে কল করে কাজটি করা যেতে পারে।
location.reload();