আমার যা প্রয়োজন তা শেষ পর্যন্ত পেয়েছি।
আমার শীর্ষে স্ক্রোল করা দরকার, তবে কিছু ট্রানজিশন না করতে চেয়েছিলাম
আপনি রুট-বাই-রুট স্তরে এটি নিয়ন্ত্রণ করতে পারেন।
আমি উপরের সমাধানটি @ wkonkel দ্বারা একত্রিত করছি এবং noScroll: true
কিছু রুট ঘোষণায় একটি সাধারণ পরামিতি যুক্ত করছি। তারপরে আমি সেই পরিবর্তনটি ধরছি।
সব মিলিয়ে: এটি নতুন ট্রানজিশনে পৃষ্ঠার শীর্ষে ভাসমান, এটি ট্রানজিশন Forward
/ Back
ট্রান্সজিশনে শীর্ষে ভাসবে না এবং প্রয়োজনে আপনাকে এই আচরণটি ওভাররাইড করতে দেয়।
কোড: (পূর্ববর্তী সমাধানের সাথে একটি অতিরিক্ত নসক্রোল বিকল্প)
// hack to scroll to top when navigating to new URLS but not back/forward
let wrap = function(method) {
let orig = $window.window.history[method];
$window.window.history[method] = function() {
let retval = orig.apply(this, Array.prototype.slice.call(arguments));
if($state.current && $state.current.noScroll) {
return retval;
}
$anchorScroll();
return retval;
};
};
wrap('pushState');
wrap('replaceState');
এটি আপনার app.run
ব্লকের মধ্যে রাখুন এবং ইনজেক্ট করুন $state
...myApp.run(function($state){...})
তারপরে, আপনি যদি পৃষ্ঠার শীর্ষে স্ক্রোল করতে না চান তবে এই জাতীয় একটি রুট তৈরি করুন:
.state('someState', {
parent: 'someParent',
url: 'someUrl',
noScroll : true // Notice this parameter here!
})