我已经对现有代码进行了简化,我想在其中将用户查询搜索到数据库中。我可以全部调用$https,只是从一个控制器(从setSearchgetSearch)到另一个控制器的数据丢失了。我有用户服务来传递数据

http://plnkr.co/edit/ncSSFlG1YcwAMmpl9WDX

我在以下代码上遇到问题:

app.controller ('getSearch',function($scope,queryService){

 var userQuery= queryService.getUserQuery();
 alert(userQuery); // why is it blank?????????????//

 // i want to make a https call using this userQuery and fetch data from DB

});

最佳答案

您的问题是您的按钮属于“提交”类型,并且该表单没有任何操作,因此单击该页面时仅刷新该页面。页面刷新时,所有内容都会重置,并且您会丢失数据。

我将您的按钮更改为不提交的type="button",并在单击按钮后手动更改了路由,只是这样您可以看到数据已正确存储和传递。

$scope.getQuery = function(message){
   queryService.setUserQuery(message);
   $location.path( "/search" );
};


Plnkr

10-07 23:39