【发布时间】:2013-05-28 13:35:30
【问题描述】:
我在缓存 JSONP 请求时遇到问题。
我尝试了$http.jsonp(url, { cache: true }),但它似乎不起作用。
我也试过$http({ method: 'JSONP', url: url, cache: true }),但无济于事。
相反,我采用了手动缓存结果(下面是非常粗略的工作示例)。
AngularJS 可以为我做这种缓存吗?
countries.factory 'Wikipedia',
['$http', '$q', ($http, $q) ->
cache = {}
getSummary: (country) ->
if cache.hasOwnProperty(country)
cache[country]
else
summary = $q.defer()
url = "http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&rvparse=1&titles=#{country}&format=json&redirects=1&callback=JSON_CALLBACK"
$http.jsonp(url).success (data) ->
# process data ....
paragraphs = ['p1', 'p2']
# return summary content paragraphs
cache[country] = paragraphs
summary.resolve paragraphs
summary.promise
]
【问题讨论】:
-
“不工作”是指您在检查员中看到多个请求?有一个 repro fiddle/plnker?
标签: javascript angularjs coffeescript