के रूप में कई ui-बार देखा गया एनिमेट के लिए सर्वश्रेष्ठ अभ्यास मैं एक ऐप्लिकेशन है जो मूल रूप से इसएक
<div ui-view="header">
<div ui-view="main">
<div ui-view="footer">
अब की तरह लग रहा है, पाद एप्लिकेशन के सभी अलग-अलग राज्यों के लिए ही रहेगा, लेकिन हैडर बदल जाएगा कुछ राज्यों में, लेकिन कई राज्यों में सामग्री साझा करते हैं। केवल ui-view
जो सभी राज्यों में बदल जाएगा ui-view="main"
है।
वर्तमान में मेरी $stateProvider
इस तरह (पादलेख अभी तक लागू नहीं) दिखता है:
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$stateProvider.state('root',{
url: '',
abstract: true,
views: {
'header': {
templateUrl: appHelper.views+'/header.html',
},
}
})
.state('root.home', {
url: '/',
views: {
'header': {
templateUrl: appHelper.views+'/header.html',
},
'[email protected]': {
templateUrl: appHelper.views+'/home.html',
controller: 'HomeController as homeVm',
}
},
resolve: {
posts: function(dataService) {
return dataService.getPosts();
},
artists: function(dataService) {
return dataService.getArtists();
}
}
})
.state('root.artist', {
url: '/artist/:slug',
views: {
'[email protected]': {
templateUrl: appHelper.views+'/artistHeader.html',
controller: 'ArtistController as artistVm',
},
'[email protected]': {
templateUrl: appHelper.views+'/artist.html',
controller: 'ArtistController as artistVm',
}
},
resolve: {
artist: function($stateParams, dataService) {
return dataService.getArtist($stateParams.slug);
}
}
});
}]);
अब तक तो अच्छा। लेकिन यहां पकड़ है। संक्रमण के दौरान मैं सभी ui-view
एस को एक के रूप में एनिमेट करना चाहता हूं। बातें मेरे मामले में एकजुट दिखने के लिए (यह एक फीका एनीमेशन है) मैं उन्हें एक रैपिंग div में डाल दिया और कि div करना चाहते हैं में फीका (प्रत्येक अलग ui-view
पर यह कर कुरूपता के सभी प्रकार का कारण होगा) फीका बाहर/करते हैं।
इस परिदृश्य में सबसे अच्छा अभ्यास क्या है?
मैं उन्हें एक ui-view
में लपेट और ऊपर हुक कि $stateProvider
किसी भी तरह में करते हैं (नेस्ट ui-view
रों?)। क्या ऐसा करने के कोई अन्य तरीके हैं? क्या मैं $stateChange
सुन सकता हूं और ngAnimate
जैसे मेरे रैपर में कक्षाएं ui-view
के साथ लागू कर सकता हूं? (तब बाहर फीका जब तक पूरी तरह से लुप्त होने से पहले एक सफल संकल्प के साथ बाहर फीका)।
मेरी Googling प्रयासों से ऐसा लगता है ui-view
ज्यादा प्राथमिकता दी जाती है जब संक्रमण प्रकार की एनिमेशन से निपटने।
'$ stateChangeStart' और' $ stateChangeSuccess' ईवेंट में एनिमेशन कुछ अजीब साइड इफेक्ट्स हैं, इसलिए उनसे बचें (इस समय)। जब तक ui-राउटर के पास जेएस के माध्यम से 'event.preventDefault()' एनिमेशन के अलावा संक्रमण वादे का प्रबंधन करने का एक बेहतर तरीका नहीं होगा, तब तक मुश्किल होगी। तीन 'यूई-व्यू' चलाना और उन्हें सिंक्रनाइज़ेशन से एनिमेट करना शुद्ध सीएसएस के माध्यम से कोई समस्या नहीं होनी चाहिए। यूई-राउटर एफएक्यू अनुभाग में एक नज़र डालें, संक्रमण को एनिमेट करने के लिए समर्पित एक अनुभाग है। –
जबकि एनीमेशन वास्तव में सिंक्रनाइज़ेशन है, यह डिज़ाइन के साथ समस्या का कारण बनता है क्योंकि स्क्रॉल के दौरान व्यूपोर्ट के शीर्ष पर 'हेडर' तय किया जाता है। जब फीका शुरू होता है तो यह नीचे 'मुख्य' की सामग्री प्रकट करेगा जो वांछित नहीं है। एक रैपर के साथ यह स्पष्ट रूप से एक समस्या नहीं है क्योंकि यह एक एकल तत्व के रूप में फीका होगा .. – INT