javascript - angularjs 怎么让$http请求完成后再执行赋值函数?

查看:140
本文介绍了javascript - angularjs 怎么让$http请求完成后再执行赋值函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

定义参数

var data = []

get请求json数据

$http.get("/get")
.then(function (response) {
    data=angular.fromJson(response.data.dt);    //赋值
    });       

输出 只为了说明在外面访问不到

alert(data)

因为下载了一个smark-table模板,改动时候发现,只能在最外层给页面要迭代的json对象赋值,不能嵌套在返回函数里面,原因未知。。。。

最后我得到的输出结果是空的
说明alert在$http之前执行了,或者其他原因
请问有经验的大啊神们 怎么解决

解决方案

1.按照你提供的代码,
alert(data) 肯定提前执行了,因为AJAX默认的行为是异步的。
2.在模板页面使用数据源的地方,添加ngIf指令,另外如果模板上要用一定要导出到ViewModel对象上。
3.先查看一下是否有异常信息,另外看一下组件相关说明资料。另外也确认一下返回的数据类型和数据结构是否正确,断点调试一下。
4.正常都不用手动进行jsonString的反序列化,如果手动调用,最好加个异常处理代码,另外该接口返回的Content-Type类型是什么?

这篇关于javascript - angularjs 怎么让$http请求完成后再执行赋值函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆