Ionic/AngularJS在控制器之间传递参数

Ionic/AngularJS在控制器之间传递参数,angularjs,ionic-framework,Angularjs,Ionic Framework,我正在使用Ionic框架构建一个基本的测验应用程序,但我正在努力在控制器之间传递参数。我需要使用$scope和$stateParams来执行此操作。任何帮助都将不胜感激!下面是我的app.js、controllers.js和Q2.html,它们是我项目中的html文件之一 angular.module('starter',['ionic','starter.controllers','starter.services'])) .run(函数($ionicPlatform){ $ionicPla

我正在使用Ionic框架构建一个基本的测验应用程序,但我正在努力在控制器之间传递参数。我需要使用$scope和$stateParams来执行此操作。任何帮助都将不胜感激!下面是我的app.js、controllers.js和Q2.html,它们是我项目中的html文件之一

angular.module('starter',['ionic','starter.controllers','starter.services']))
.run(函数($ionicPlatform){
$ionicPlatform.ready(函数(){
//默认情况下隐藏附件栏(删除此选项可在键盘上方显示附件栏)
//表格输入)
if(window.cordova&&window.cordova.plugins&&window.cordova.plugins.Keyboard){
插件键盘hideKeyboardAccessoryBar(真);
插件。键盘。禁用滚动(真);
}
如果(窗口状态栏){
//需要org.apache.cordova.statusbar
StatusBar.styleDefault();
}
});
})
.config(函数($stateProvider,$urlRouterProvider){
$stateProvider
//设置tabs指令的抽象状态
.state('tab'{
url:“/tab”,
摘要:没错,
templateUrl:'templates/tabs.html'
})
//每个选项卡都有自己的导航历史堆栈:
.state('tab.dash'{
url:“/dash”,
观点:{
“制表符”{
参数:{
“Q1Answer”:空,
“Q2Answer”:null
},
templateUrl:'templates/startPage.html',
控制器:“StartCtrl”
}
}
})
.state('tab.chats'{
url:“/chats”,
观点:{
“选项卡聊天”:{
参数:{
“Q1Answer”:空,
“Q2Answer”:null
},
templateUrl:'templates/Q1.html',
控制器:“Q1Ctrl”
}
}
})
.state('tab.chat detail'{
url:“/result”,
观点:{
“选项卡聊天”:{
参数:{
“Q1Answer”:空,
“Q2Answer”:null,
“总计”:null
},
templateUrl:'templates/result.html',
控制器:“ResultCtrl”
}
}
})
.state('tab.account'{
url:“/account”,
观点:{
“选项卡帐户”:{
参数:{
“Q1Answer”:空,
“Q2Answer”:null
},
templateUrl:'templates/Q2.html',
控制器:“Q2Ctrl”
}
}
});
//如果上述状态均不匹配,则将其用作回退
$urlRouterProvider。否则('/tab/startPage');
});
角度模块('starter.controllers',[])
.controller('StartCtrl',函数($scope、$state、$stateparms){
$scope.onStart=function(){
$state.go('tab.chats'{
“Q1Answer”:$scope.Q1Answer,
“Q2Answer”:$scope.Q2Answer
})
};
})
.controller('Q1Ctrl',函数($scope,Chats,$state,$stateparms){
$scope.Q1Answer=$stateParams.Q1Answer;
$scope.Q2Answer=$stateParams.Q2Answer;
$scope.Walter=函数(答案){
$state.go('tab.account'{
“Q1Answer”:$scope.answer,
“Q2Answer”:$stateParams.Q2Answer
})
}
})
.controller('ResultCtrl',函数($scope、$state、$stateparms、Chats){
$scope.Q1Answer=$stateParams.Q1Answer;
$scope.Q2Answer=$stateParams.Q2Answer;
如果($scope.Q1Answer==“cat”&&$scope.Q2Answer==“1”){
$scope.total=2;
}
否则如果($scope.Q1Answer==“cat”|$scope.Q2Answer==“1”){
$scope.total=1;
}
否则{
$scope.total=0;
}
$scope.done=函数(){
$state.go('tab.dash'{
‘答案’:“”,
“答案”:“
})
}
})
.controller('Q2Ctrl',函数($scope、$state、$stateparms){
$scope.catCount=函数(编号){
$state.go('tab.chat detail'{
“Q1Answer”:$stateParams.Q1Answer,
“Q2Answer”:$scope.number
})
}
});

上一张照片里有多少只猫?
{{Q1Answer}}
{{Q2Answer}}
提交
路线中的技术:

.state('tab.chats', {
                url: '/chats',
                views: {
                    'tab-chats': {
                        templateUrl: 'templates/Q1.html',
                        controller: 'Q1Ctrl'
                    }
                },
                params: {
                    'Q1Answer': null,
             'Q2Answer': null
                }
            })
传递参数:

$scope.Q1Answer = {} // your object
 $scope.Q2Answer = {} // your object

 $state.go('tab.chats', {
  'Q1Answer' : $scope.Q1Answer,
  'Q2Answer' : $scope.Q2Answer
})
内部控制器

.controller('Q1Ctrl', function($scope, Chats, $state, $stateParams) {

  $scope.Q1Answer = $stateParams.Q1Answer;
  $scope.Q2Answer = $stateParams.Q2Answer;
   console.log($scope.Q1Answer)
 console.log($scope.Q2Answer)
})