单击上一个按钮后查找数据

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');

这将允许您在新搜索后清空缓存,甚至在选择其他用户后。

它应该工作;)

【讨论】:

以上是关于单击上一个按钮后查找数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CRM 的子网格形式中单击按钮时显示查找窗口?

查找单击按钮的类

单击按钮时尝试使用 indexOf 查找数组的索引值

怎样查看浏览历史记录

Word已存文档中,将原有内容的字体,字号作相应改变,加标题,插入,替换某符号等word文档中怎么替换步骤

查找 JList 的选中项并实时显示