У меня установлены следующие состояния:
var questions = {
name: 'questions',
url: '/questions',
views: {
'menu': {
templateUrl: function (stateParams) {
return '/Content/app/info/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/info/partials/detail.html' :
'/Content/app/info/partials/content.html'
},
controller: 'QuestionsContentController'
},
}
}
и
$stateProvider
.state(questions)
.state(questionsContent);
Когда я отправляю свое меню с/вопросами, тогда контроллер получает список вопросов и заполняет объект $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);
});
После этого я хочу перейти к первому в списке, чтобы я закодировал:
$state.transitionTo('questions.content', { content: $scope.currentQuestion })
Однако, когда я прослеживаю это, он просто остается в петле infinte, и он не переходит к новому /info/ 5 (когда 5 является вопросомHeaders [0].questionId).
Может кто-нибудь дать мне несколько советов относительно того, как я могу сделать это переход на /info/ 5? Я рад, если он пойдет в новый браузер href, но мне нужно закодировать это напрямую (как) или может ли ui-router сделать это для меня?