为什么从 ng-controller 传递的值在 Angular JS 中是空白的

Why passed value from ng-controller is blank in Angular JS

我对现有代码进行了一次修改,我想在其中将用户查询搜索到数据库中。我可以 $https 调用 n all,只是从一个控制器(从 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