我无法通过uid
进入$state.go
功能。
这是我的控制器:
.controller('chatCtrl', function($scope,$http,$ionicPopup,$state,$ionicHistory,$stateParams) {
$scope.data = {};
$scope.session_id= sessionStorage.getItem('session_id');
var sid = $scope.session_id;
if($scope.session_id == null){
$state.go('login');
}
else {
var cload = 'https://m.socialnetwk.com/home/app/chat_load.php';
$http.post(cload, {id : $scope.session_id}).then(function (res){
$scope.chat = res.data;
});
$scope.chat = {};
$scope.openModal = function(id) {
$scope.selectedId = id;
$state.go('chat2',{uid: $scope.selectedId});
}
}
})
.controller('chat2Ctrl', function($scope,$http,$ionicPopup,$state,$ionicHistory,$stateParams) {
$scope.data = {};
$scope.id = {};
$scope.session_id= sessionStorage.getItem('session_id');
var sid = $scope.session_id;
if($scope.session_id == null){
$state.go('login');
}
else {
var pmloaddd = 'https://m.socialnetwk.com/home/app/upml.php';
$http.post(pmloaddd, {id : $state.params.uid}).then(function (res){
$scope.pmload = res.data;
});
}
})

这是我的app.js:
$stateProvider
.state('chat2', {
url: '/page9',
params: {
uid: null
},
templateUrl: 'templates/chat2.html',
controller: 'chat2Ctrl'
})

答案 0 :(得分:0)
有两个错误
使用以下解决方案。
你的app.js
$stateProvider
.state('chat2', {
url: '/page9/:uid', //added the parameter here
params: {
uid: null
},
templateUrl: 'templates/chat2.html',
controller: 'chat2Ctrl'
})
Chat2控制器的其他部分应如下所示
if($scope.session_id == null){
$state.go('login');
}
else {
var pmloaddd = 'https://m.socialnetwk.com/home/app/upml.php';
// modified the below line
$http.post(pmloaddd, {id : $stateParams.uid}).then(function (res){
$scope.pmload = res.data;
});
<强> LIVE DEMO 强>
答案 1 :(得分:0)
首先,您需要使用url传递它,然后您可以像 -
一样访问它$ stateParams。
$stateProvider
.state('chat2', {
url: '/page9/:uid',
controller:'name of yout controller',
controller: function($stateParams){
$stateParams.uid //*** Exists! ***//
}
});
然后您可以这样访问: -
控制器上的$ stateparams.uid。
您也可以参考此链接 - Url routing--stateParams Service