【急求】本人javascript小白,这个问题纠结好久了,求支招
java吧
全部回复
仅看楼主
level 9
ipromisecc 楼主
var val = 0;
$http.get( * url * ).success( function( data )
{
val = data.id; //
alert( val ); //值为 1
} ).error(function( data )
{
})
alert( val ); //此处的val等于0
------------------------------------------------------
问题: $http 里面的值在外面接受不到,怎么能让val的值是$http返回的值
2014年09月26日 07点09分 1
level 9
ipromisecc 楼主
javascript小白,真心求教。百度好久也没有找到答案...
2014年09月26日 07点09分 2
level 8
没用过 $http 这种写法,估计是异步引起的,可以试下,如果是jquery的话,可以考虑下面的写法
$.ajaxSetup({
async:false
});
//放在$http 上面
2014年09月26日 14点09分 3
很感谢~ 就是这个了!! 虽然问题已经几天前解决了。关掉异步就可以了
2014年09月29日 09点09分
level 11
异步的话外面妥妥得不到,那不是有success和error嘛,就是专门处理结果的回调,后续操作都在这个里头。
2014年09月26日 15点09分 4
level 1
你这用的是angular啊,是因为$http去发送get请求是异步的。有两种解决办法,一种是在用setTimeout(function(){ alert(val)}, 1000)函数; 另外一种更加推荐,就是监听一下angular里面的$viewContentLoaded事件。
2014年09月26日 15点09分 5
你的图标和我老大的图标一抹一样。[真棒]
2014年09月29日 09点09分
level 12
不懂帮顶
2014年09月27日 00点09分 6
level 9
ipromisecc 楼主
问题已解决,首先,我这么获取值就有点不对的。 在外面是拿不到里面的结果的,这是由于异步的原因。 可以使用 async:false,关掉异步执行,使其同步执行就可以直接在success里面准确的获取到值。谢谢大家了~
2014年09月29日 09点09分 8
1