Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么从ng控制器传递的值在Angular JS中为空_Javascript_Angularjs_Ng Controller - Fatal编程技术网

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