请教一个关于 angular 关于 jsonp 的问题

2014-08-21 17:33:15 +08:00
 taoche
在写angular的时候 要远程请求一个jsonp数据,但是$http.jsonp 只有异步请求,不能改成同步的,导致我 return data 是 undefined。。

问:有没有办法让jsonp 模拟同步请求的方式。
或者有没有 在$http callback return数据,controller 里能等待 callback再渲染 初始化页面。

T-T 或者有 angularjs 请求 jsonp,文章列表与内页 切换的demo(其实就是类似博客页面)github上面换个好几个关键词搜索都没有找到,请原谅我的伸手!!

多谢!
4323 次点击
所在节点    JavaScript
11 条回复
beaaar
2014-08-21 17:44:52 +08:00
不知道我理解的对不对,可以controller里先给页面要铺设的内容定义一个初始化的内容;类似“载入中”,等callback执行完毕,替换掉相应变量即可。
solodxg
2014-08-21 20:01:40 +08:00
promise ?
binux
2014-08-21 20:18:53 +08:00
不是 angular, jsonp 也是异步的,你都用 JS 了习惯异步吧
jsonline
2014-08-21 20:36:15 +08:00
在JS里不要想同步。
loddit
2014-08-21 21:23:22 +08:00
要等什么事情完成再渲染初始化页面。
可以在 $routeProvider.when 里面用 reslove
kimmykuang
2014-08-21 22:21:20 +08:00
list page与detail page的切换,我现在做的hybrid app项目里都是把detail page作为一个层覆盖到list page上的,好像没什么难的嘛
NathanInMac
2014-08-22 00:13:03 +08:00
@beaaar 你理解是对的。都是 2 way binding 的年代,自动就更新了
chemzqm
2014-08-22 01:46:43 +08:00
promise啊 angular支持的
Arrowing
2014-08-22 09:11:52 +08:00
angular里的http不支持同步的,要同步可以使用其他ajax类库,或者使用promise
ekousp
2014-08-22 11:52:59 +08:00
1. service 获取数据返回promise,在controller里 promise.then(...)
2. 使用 nv-view: resolve - {Object.<string, function>=} - An optional map of dependencies which should be injected into the controller. If any of these dependencies are promises, the router will wait for them all to be resolved or one to be rejected before the controller is instantiated. If all the promises are resolved successfully, the values of the resolved promises are injected and $routeChangeSuccess event is fired. If any of the promises are rejected the $routeChangeError event is fired.
3. 页面加载时先获取数据,然后手动启动bootstrap:
$.get('http://data').done(function() {
angular.boostrap(element, ['myapp']);
});
sivacohan
2014-08-22 12:07:54 +08:00
jsonp 不是有success吗?渲染写成handler在这回调不行吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/129162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX