我有一段ajax会异步加载一些数据:
$(document).ready ->
$.ajax '/splunk/@orderId',
type: 'GET'
success: html ->
$('#splunk_results').append html
我将它放入coffeescript / backbone.js文件中:
define dependencies, (template, ...) ->
OrderDetailsView = Backbone.View.extend
className: 'expanded_order'
initialize: ->
@orderId = @model.get('order_number')
...
我对coffeescript / backbone文件的结构并不熟悉,所以我不确定把ajax放在哪里。因为它引用了@orderId,我觉得它应该进入类内部,但它会使一些非常丑陋的javascript(而且,现在它似乎无法正常工作)。
编辑:请注意我在链接中使用了@orderId变量,所以我认为这个调用需要以某种方式在OrderDetailsView中(否则它无法知道@orderId是什么,对吧?)。此外,我希望能够返回任意一块HTML - 无需使用结构化模型。答案 0 :(得分:1)
你不应该真的需要直接进行ajax调用。创建一个集合并使用fetch。 Backbone很擅长为你抽象ajax调用。
类似的东西:
SplunkCollection = Backbone.Collection.extend
url: 'splunk/'
splunkcollection = new SplunkCollection
splunkcollection.fetch()
...
或者只是设置模型的网址并获取它:
@model.url = '/something' //set this somewhere in your model class
@model.fetch()
http://documentcloud.github.com/backbone/#Model-fetch
http://documentcloud.github.com/backbone/#Collection-fetch
答案 1 :(得分:0)
在我的情况下,由于我不需要请求的特定结构,因此AJAX调用可以放在文件的顶部(它根本不会干扰骨干代码)。