我希望在通过表单搜索后找到我的数据。 我检索用户的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);
});
})
如果有人能指出我要做的事,那就太好了。)
谢谢!
答案 0 :(得分:2)
我将解释原因: 当您进行搜索并选择用户时,您将收到用户的信息。此信息将被缓存,以便您在转到下一页并“返回”后可以找到它们。 然后在您的控制器中执行此操作:
$scope.showInfo = function(currObj){
appService.addObject(currObj);
console.log(currObj);
$state.reload('infoUser');
$state.go('infoUser');
}
允许您在新搜索后清空缓存,或者甚至在选择其他用户后清空缓存。
它应该工作;)