在Batman.js中返回请求结果的问题
Issues returning a Request result in Batman.js
我从蝙蝠侠返回结果有问题。请求调用。我已经注释了我调用返回的区域。我很确定我不能在那里直接调用return,但我似乎找不到任何文档可以为我指明正确的方向。
模型:
class Web.Inbox extends Batman.Model
@resourceName: 'inbox'
@persist Web.InboxStorage
@encodeTimestamps()
@classAccessor 'task_entries', ->
request = new Batman.Request
url: 'http://0.0.0.0:3000/inbox'
autosend: false
success: (response) ->
results = new Batman.Set
results.add(Web.TaskEntry.createMultipleFromJSON(response))
console.log(results) # The value I want is here!
return results # I assume the issue is here
request.send()
控制器:
class Web.InboxController extends Web.ApplicationController
routingKey: 'inbox'
index: (params) ->
task_entries = Web.Inbox.get('task_entries')
@set('task_entries', task_entries)
console.log(task_entries) # not the same value as I attempt to return
# in the request
来自模型的控制台日志(我想要的):
Set {_storage: Array[1], length: 1, _batman: _Batman, constructor: function, isCollectionEventEmitter: true…}
_batman: _Batman
_storage: Array[1]
0: Array[15]
0: TaskEntry
1: TaskEntry
2: TaskEntry
3: TaskEntry
4: TaskEntry
5: TaskEntry
6: TaskEntry
7: TaskEntry
8: TaskEntry
9: TaskEntry
10: TaskEntry
11: TaskEntry
12: TaskEntry
13: TaskEntry
14: TaskEntry
控制器的控制台日志:
Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
任何帮助都是感激的!
不确定你是否在IRC中看到bradstewart的回应,以防万一,这里再看一遍:
Web.Inbox.get('task_entries')
这个访问器触发一个AJAX请求,但它是异步的。它没有返回您正在寻找的值,因为该值仍在从服务器加载。正如Brad指出的那样,访问器返回Batman.Request
对象,而不是来自服务器的值。
你可以做的是让访问器返回一个Batman.Set
,然后也使用访问器触发一个Batman.Request
,这将加载记录到该集合。当set更新时,您的视图也将更新。例如:
@classAccessor 'task_entries', ->
@_entries = new Batman.Set
new Batman.Request
url: "/inbox"
method: "GET"
success: (data) =>
records = Web.TaskEntry.createMultipleFromJSON(data)
@_entries.add(records...) # if you're on master branch, you could use `@_entries.addArray(records)`
return @_entries
这将导致访问器返回一个Set,该Set最初是空的,但是该Set将由Batman.Request
填充,并且您的视图将被更新。
(哎呀,从gist交叉张贴)
相关文章:
- async问题,JS Promise无法返回结果,但可以使用console.log
- 获取json结果的身份验证问题
- 使用 jQuery UI 折叠面板显示 couchDB 数据库搜索结果时出现问题
- 在Javascript/Google Maps Api中将结果放入数组时出现问题
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- NaN作为函数结果而不是必需的整数出现问题
- 显示更多结果的问题
- 管道订购问题?将stdin管道化为http请求,并将结果管道化为stdout
- I'我在使用聚合核心ajax发送表单结果时遇到问题-go没有执行
- 发送 XMLHttpRequest 时缓存结果的问题
- J查询结果显示问题
- JS正则表达式结果表达式赋值问题
- AngularJS ng-repeat - 空白结果的问题
- 简单搜索结果页面:if/else 使用 localStorage 变量和 document.write 时出现问题
- 带有json结果列问题的Highchart瀑布
- 使用Meteor Search Source软件包获取结果的反应性问题
- 表单显示问题+数组下的结果
- Javascript数学给出了不正确的结果,我该如何解决这个问题
- .toFixed() 结果的问题
- 通过jquery将多个结果发送到php页面中的问题