ho i seguenti stati istituiti:Come posso rendere il mio ui-router in uno stato diverso dal mio controller?
var questions = {
name: 'questions',
url: '/questions',
views: {
'menu': {
templateUrl: function (stateParams) {
return '/Content/app/questions/partials/menu.html'
},
controller: 'QuestionsMenuController'
},
}
}
var questionsContent = {
name: 'questions.content',
parent: 'questions',
url: '/:content',
views: {
'[email protected]': {
templateUrl: function (stateParams) {
var isNumber = !isNaN(parseFloat(stateParams.content));
return isNumber ? '/Content/app/questions/partials/detail.html' :
'/Content/app/questions/partials/content.html'
},
controller: 'QuestionsContentController'
},
}
}
e:
$stateProvider
.state(questions)
.state(questionsContent);
Quando vado il mio menu con/domande allora il controllore ottiene un elenco di domande e popola l'oggetto $ scope.questionHeaders .
var url = '/api/Question/GetQuestionHeaders?id=0';
$http.get(url)
.success(function (data, status, headers, config) {
$scope.questionHeaders = data;
$scope.currentQuestion = $scope.questionHeaders[0].questionId;
$state.transitionTo('questions.content', { content: $scope.currentQuestion })
})
.error(function (data, status, headers, config) {
alert("Error: No data returned from " + url);
});
A seguito di questo voglio transizione verso il primo della lista in modo codificato:
$state.transitionTo('questions.content', { content: $scope.currentQuestion })
Tuttavia quando traccio questo rimane solo in un ciclo infinte e non va per il nuovo/questions/5 (quando 5 è la domandaHeaders [0] .questionId).
Qualcuno può darmi qualche consiglio su come posso rendere la transizione a/questions/5? Sono felice se vada al nuovo browser href ma devo codificarlo direttamente (come) o posso farlo da ui-router?
Questo è esattamente quello che ho fatto nel codice sopra ma niente accade. Quando eseguo il debug su quella linea, viene colpito ancora e ancora e ancora in loop. –
Puoi fare un plunkr se posso provarlo? Forse il percorso per i tuoi modelli è sbagliato? –
Inoltre, il tuo QuestionsContentController è nello stesso modulo raggiungibile e esiste? –