Javascript 如何在Ionic和Angular中将POST请求的结果传递到另一个页面
我正在使用ionic构建一个移动应用程序,并在应用程序中实现非常轻量级的身份验证(无安全性)。基本上,当用户在提交电子邮件和密码后点击登录按钮时,会使用POST请求根据数据库检查其信息。现在我的问题是,一旦我确认用户的信息在数据库中,我想将该响应对象从POST传递到一个配置文件页面,然后该页面可以显示用户的配置文件信息。如何将信息(响应对象)从一个控制器传递到另一个页面,以便在屏幕上显示?代码如下: app.jsJavascript 如何在Ionic和Angular中将POST请求的结果传递到另一个页面,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我正在使用ionic构建一个移动应用程序,并在应用程序中实现非常轻量级的身份验证(无安全性)。基本上,当用户在提交电子邮件和密码后点击登录按钮时,会使用POST请求根据数据库检查其信息。现在我的问题是,一旦我确认用户的信息在数据库中,我想将该响应对象从POST传递到一个配置文件页面,然后该页面可以显示用户的配置文件信息。如何将信息(响应对象)从一个控制器传递到另一个页面,以便在屏幕上显示?代码如下: app.js //Login view .state('signin', {
//Login view
.state('signin', {
url: '/signin',
templateUrl: 'templates/signin.html',
controller: 'LoginCtrl'
})
// Profile view:
.state('tab.profile', {
url: '/profile',
views: {
'tab-profile': {
templateUrl: 'templates/tab-profile.html'
controller: 'ProfileCtrl'
}
}
})
controllers.js:
$http.post(url, obj)
.success(function (res, status, headers, config) {
if (res == null){
console.log("bad login");
}
else{
// $scope.response = res;
console.log(res);
console.log("post successful");
$state.go('tab.profile',{response:res});
}
});
tab-profile.html
<ion-view view-title="Profile">
<ion-content>
<ion-list>
<ion-item >{{response.name}}</ion-item>
</ion-list>
</ion-content>
</ion-view>
{{response.name}
您可以在路由定义中定义参数。查看ui路由器模块的docu()以查看正确的语法
为了在两个控制器之间传递更复杂的对象,我将使用服务。Xou可以在POST解析后在服务中设置数据,并在状态更改后在另一个控制器中读取数据。阅读此链接以查看示例。希望这对您有所帮助:)您可以创建一个
服务
,该服务将存储要传递给其他控制器的数据
让我举一个例子:
var yourApp = angular.module('fooApp', []);
yourApp.factory('yourFactory', function() {
var items = [];
var storeService = {};
storeService.addItem = function(item) {
items.push(item);
};
storeService.removeItem = function(item) {
var index = items.indexOf(item);
items.splice(index, 1);
};
storeService.items = function() {
return items;
};
return storeService;
});
function MyCtrl($scope, yourFactory) {
$scope.newItem = {};
$scope.yourFactory = yourFactory;
}
这似乎是可行的,但当我将服务注入我的控制器时,它会改变我页面的外观,使顶部选项卡(我使用的是tabs结构)位于标题的顶部,你知道为什么会发生这种情况吗?@user2466886只需使用Google Chrome和关键字调试器调试发生的事情。请看下面的文章,我能够实现一个执行post请求并返回对象的服务。但是,在我的登录页面中,用户提供了用于post请求的登录信息。在我的个人资料页面中,我如何传递登录信息,以便再次使用它发出另一个Post请求。我想发出另一个请求的原因是因为我想显示配置文件信息。@user2466886只需在服务中创建新变量来存储所有必要的信息。您可以随时从服务中心获取此信息。