我有一个全局变量' id'
alert
在此代码中,id
可以正常显示console.log
值,但是当我没有将id
显示undefined
作为$http.get('xxx.xxx.xxx.xxx/?id=8')
时}。
为什么会有不同的行为?
同时此代码正常工作
trollm.controller("getSingle",function($scope,$http){
var id;
var url;
$scope.troll=[];
$scope.init = function(getid)
{
id=getid;
//This function is sort of private constructor for controller
//Based on passed argument you can make a call to resource
//and initialize more objects
//$resource.getMeBond(007)
}
$http.get('http://xxx.xxx.xx.xx./?id='+id).then(function(rest) {
alert(id);
//alert(id);
angular.forEach(rest.data, function(singletroll){
$scope.troll.push(singletroll);
})
$scope.lasttrollID=rest.data.lastID;
//$scope.troll = rest.data;
})
console.log($scope.init);
});
所有代码
{{1}}
答案 0 :(得分:0)
在将函数构造函数var设置为控制器var之后立即尝试在同一函数实例中调用$http.get
。
trollm.controller("getSingle",function($scope,$http){
var id;
var url;
$scope.troll=[];
$scope.init = function(getid){
// set the controller id
id=getid;
$http.get('http://xxx.xxx.xx.xx./?id='+id).then(function(rest) {
...
如果您设置了$http.get
,那么您没有在init函数中调用id
。因此,在调用控制器时,id为undefined