13 angularjs
我设置了以下状态:
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: {
'content@': {
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'
},
}
}
Run Code Online (Sandbox Code Playgroud)
和:
$stateProvider
.state(questions)
.state(questionsContent);
Run Code Online (Sandbox Code Playgroud)
当我带有/问题的菜单时,控制器会获得一个问题列表并填充$ 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);
});
Run Code Online (Sandbox Code Playgroud)
在此之后我想转换到列表中的第一个,所以我编码:
$state.transitionTo('questions.content', { content: $scope.currentQuestion })
Run Code Online (Sandbox Code Playgroud)
然而,当我追踪它时,它只是停留在infinte循环中,它不会转到new/questions/5(当5是questionHeaders [0] .questionId时).
有人可以给我一些建议,让我如何过渡到/ questions/5?我很高兴,如果它进入新的浏览器href但我需要直接编码(如何)或ui-router可以为我做这个?
Nik*_*hev 35
您可以注入$ state服务,并将其命名为transitionTo(go)方法.
.controller('SomeController', ['$state', function($state){
$state.transitionTo('my.state', {arg:'arg'});
}]);
Run Code Online (Sandbox Code Playgroud)
@Cody的问题:
您还可以将$ stateParams注入控制器并转到带有args的状态:
.controller('SomeController', ['$state', '$stateParams', function($state, $stateParams){
$state.go('my.state', {listId: $stateParams.listId, itemId: $stateParams.itemId});
}]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19127 次 |
最近记录: |