我通过从表中获取单元格值来设置$ stateParam:
$scope.tableClick = function() {
var tr = $('#Table_1').find('tr');
var id = $(event.target).parent().find("td:first").text();
$stateParams.engineId == id;
$state.go('engineselection');
}
此时我停止调试。它给了我engineId值。
这是我使用的路由器部分:
$stateProvider.state('engineselection', {
url : '/engineselection:engineId',
templateUrl : 'assets/views/engineselection.html',
controller : 'EngineSelectionCtrl'
})
这是控制器中发生的事情:
controllers.controller("EngineSelectionCtrl",
["$scope", "$rootScope", "directiveBinder", '$timeout', '$stateParams', '$resource', '$location', 'rtmService', '$state',
function($scope, $rootScope, directiveBinder, $timeout, $stateParams, $resource, $location, myService, $state) {
myService.loadViewWithEngine(function(id, data) {
$scope.views = data;
$scope.$apply();
$('#loadingViews').spin(false);
});
当我在函数之前停止并键入console $ stateParams时,它告诉我有一个名为'engineId'的状态参数,但它是未定义的。如何将参数传递给控制器及其值?
答案 0 :(得分:0)
在我改变了$ state.go之后的工作:
$state.go('viewselection', {engineProgramId: id});