单击上一个按钮后查找数据
Posted
技术标签:
【中文标题】单击上一个按钮后查找数据【英文标题】:Find data after clicking on previous button 【发布时间】:2017-09-08 13:57:15 【问题描述】:通过表单进行搜索后,我想找到我拥有的数据。 我检索了一个用户的 ID,我可以通过该用户访问他的信息。
我有一个用于在有效列表中搜索个人的功能。
这个功能如下,为我服务:
var searchUser = function(form)
var formdata = new FormData();
for (var key in form)
console.log(key, form[key]);
formdata.append(key, form[key]);
return $http(
method : 'POST',
url : url + '/user/search',
data : formdata,
transformRequest: angular.indentity,
).then(function(result)
return result.data;
,function errorCallback(response)
console.log(response);
);
;
然后我的服务中有另一个函数来检索所选用户,并将显示他的信息:
var userinfo = function(idUser)
return $http(
method : 'GET',
url : url + '/user/' + idUser,
).then(function(result)
return result.data;
);
;
由于我的控制器使用这种功能,现在我恢复了“idUser”:
var addObject = function(newObj)
element.push(newObj);
;
var getObject = function()
return element;
;
效果很好。
但令人担忧的是,在我有我的信息的这个页面上,我可以通过单击链接访问另一个页面。 因此,通过执行“以前”,我丢失了有关用户信息的数据......应用程序找不到我以前拥有的“idUser”参数...... 我在一天中尝试了几件事,但没有任何效果..
<form ng-controller="listCtrl" id="app-form5" class="list" ng-submit="search()">
<label class="item item-input" id="app-search1" style="">
<i class="icon ion-search placeholder-icon"></i>
<input placeholder="Search" type="search" ng-model="form.fname">
</label>
<a class="button button-positive button-block" ng-click="search()">Search</a>
<ion-list id="menu-list1">
<ion-item ng-repeat="user in list track by $index" ng-click="showInfo(user.id)"> user.name </ion-item>
</ion-list>
</form>
还有我的控制器:
.controller('listCtrl', function($scope, $stateParams, $state, appService)
$scope.search = function ()
appService.searchUser($scope.form).then(function(response)
console.log(response);
$scope.list = response;
);
;
$scope.showInfo = function(currObj)
appService.addObject(currObj);
console.log(currObj);
$state.go('infoUser');
)
.controller('infoCtrl', function($scope, $stateParams, appService)
$scope.$on('$ionicView.beforeEnter', function (event, viewData)
viewData.enableBack = true;
);
$scope.info = appService.getObject();
console.log($scope.info);
appService.userinfo($scope.info).then(function(response)
$scope.userinfo = response;
console.log($scope.userinfo);
);
)
如果有人能指出我想做的事情,那就太好了:)
谢谢!
【问题讨论】:
【参考方案1】: 您可以在“infoUser”模板中使用“cache: true”来保留按上一个按钮后的信息。 您将添加“reload()”方法,以便在新搜索时清除缓存。我将解释原因: 当您进行搜索并选择用户时,您将收到该用户的信息。此信息将被缓存,以便您在转到下一页并“返回”后可以找到它们。 然后在您的控制器中执行以下操作:
$scope.showInfo = function(currObj)
appService.addObject(currObj);
console.log(currObj);
$state.reload('infoUser');
$state.go('infoUser');
这将允许您在新搜索后清空缓存,甚至在选择其他用户后。
它应该工作;)
【讨论】:
以上是关于单击上一个按钮后查找数据的主要内容,如果未能解决你的问题,请参考以下文章