Javascript 为什么从ng控制器传递的值在Angular JS中为空
我对现有代码做了一次修改,我想在数据库中搜索用户查询。我可以做Javascript 为什么从ng控制器传递的值在Angular JS中为空,javascript,angularjs,ng-controller,Javascript,Angularjs,Ng Controller,我对现有代码做了一次修改,我想在数据库中搜索用户查询。我可以做$https调用n all,只是从一个控制器(从setSearch到getSearch)到另一个控制器的数据在某处丢失了。我有用户服务来传递数据 我面临以下代码的问题: app.controller ('getSearch',function($scope,queryService){ var userQuery= queryService.getUserQuery(); alert(userQuery); // why is
$https
调用n all,只是从一个控制器(从setSearch
到getSearch
)到另一个控制器的数据在某处丢失了。我有用户服务来传递数据
我面临以下代码的问题:
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
});
您的问题是,您的按钮类型为submit,而表单对其没有任何操作,因此当您单击它时,页面只会刷新。当页面刷新时,所有内容都会重置,您将丢失数据 我将您的按钮更改为不提交的
type=“button”
,并在您单击按钮后手动更改路线,以便您可以看到数据已正确存储和传递
$scope.getQuery = function(message){
queryService.setUserQuery(message);
$location.path( "/search" );
};
您的问题是,您的按钮类型为submit,而表单对此没有任何操作,因此当您单击它时,页面只会刷新。当页面刷新时,所有内容都会重置,您将丢失数据 我将您的按钮更改为不提交的
type=“button”
,并在您单击按钮后手动更改路线,以便您可以看到数据已正确存储和传递
$scope.getQuery = function(message){
queryService.setUserQuery(message);
$location.path( "/search" );
};
您的代码中仍然存在一个小问题,您的搜索代码只工作一次。第二次尝试输入一些文本,它永远不会进入
getSearch
controller@Shashank我没有试图修改你的设计。发生这种情况是因为您处于搜索
状态,因此location.path不会更改路由,控制器也不会重新加载。ohh.yes。我明白了。有什么建议吗?或者我必须用谷歌搜索出来:((嗯,这取决于你到底想做什么。当值发生变化时,你需要通知第二个控制器?如果是,这意味着控制器之间的通信-->你需要使用服务来保存数据。好的,你的意思是除了app.factory('queryService'))
,你想创建另一项服务吗?我想searchResult.html
加载搜索数据,所以每次单击都需要调用getSearch
。你的代码中还有一个小问题,你的搜索代码只工作一次。第二次尝试输入一些文本,它永远不会转到getSearch
controller@Shashank我没有试过修复您的设计。发生这种情况是因为您处于搜索
状态,因此location.path不会更改路由,控制器也不会重新加载。哦,是的。我已经找到了。有什么建议吗?否则我必须用谷歌搜索:(((嗯,这取决于您到底想做什么。当值发生变化时,您需要通知第二个控制器?如果是,这意味着控制器之间的通信-->您需要使用服务来保存该数据。好的,您的意思是除了app.factory('queryService')之外
,你想创建另一项服务吗?我想要searchResult.html
加载搜索数据,所以每次单击都需要调用getSearch
。