将事件绑定到函数Coffeescript。Backbone.js

将事件绑定到函数Coffeescript。Backbone.js,backbone.js,coffeescript,haml,Backbone.js,Coffeescript,Haml,我正在尝试获取OnChange事件上的JSON。以及对现有haml页面进行更改。 我的目标是用json值填充另一个select字段。目前,我正试图打印一条消息,说明获取了json。但是我的html没有变化 在控制台的network选项卡中,我看到正在发出URL请求,并返回304响应。我还可以在响应中看到json events: "submit form" : "onSubmit" "change [name=repository]" : "onChange" onChang

我正在尝试获取OnChange事件上的JSON。以及对现有haml页面进行更改。 我的目标是用json值填充另一个select字段。目前,我正试图打印一条消息,说明获取了json。但是我的html没有变化

在控制台的network选项卡中,我看到正在发出URL请求,并返回304响应。我还可以在响应中看到json

events:
    "submit form" : "onSubmit"
    "change [name=repository]" : "onChange"

  onChange: (e) ->
    e.preventDefault()
    name = @$("[name=repository]").val()
    localStorage['new_issue_last_repo'] = name
    token = localStorage['oauth2_github']['accessToken']
    @model = new Assignees(name)
    console.log 'Printttttt'
    @model.fetch {headers : @token},
      success: (model) =>
        @$('.assignee').html("<span>Fetched assignees</span>")
      error: =>
        @$('.assignee').html("<span>Failed to fetch assignees :(</span>")
获取json后,如何让.assignment进行更改。还有,我如何访问json数据

我有一个类似的功能。我不知道我在onChange函数中做错了什么

  onSubmit: (e) ->
    e.preventDefault()
    name = @$("[name=repository]").val()
    localStorage['new_issue_last_repo'] = name
    repository = @repositories.find (r) -> r.get('full_name') == name
    model = new IssueModel({
      body: @$("[name=body]").val()
      title: @$("[name=title]").val()
      assignee: @$("[name=assignee]").val()
      milestone: @$("[name=milestone]").val()
    }, {repository: repository})

    model.save {},
      success: (model) =>
        @badge = new Badge()
        @badge.addIssues(1)
        @$('.message').html("<span>Issue <a href=\"#{model.get("html_url")}\" target=\"_blank\">##{model.get('number')}</a> was created!</span>")
      error: =>
        @$('.message').html("<span>Failed to create issue :(</span>")
onSubmit:(e)->
e、 预防默认值()
name=@$(“[name=repository]”)。val()
localStorage['new\u issue\u last\u repo']=名称
repository=@repositories.find(r)->r.get('full_name')==name
模型=新发布模型({
正文:@$(“[name=body]”)。val()
标题:@$(“[name=title]”)。val()
受让人:@$(“[名称=受让人]”).val()
里程碑:@$(“[名称=里程碑]”).val()
},{repository:repository})
model.save{},
成功:(模型)=>
@徽章=新徽章()
@徽章.附加条款(1)
@$('.message').html(“问题已创建!”)
错误:=>
@$('.message').html(“未能创建问题:”)

我对HAML没有那么大的兴趣,但是:

%form
  %section.repo-select
    %select{name: 'repository'}
应成为此HTML:

<form>
    <section class="repo-select">
        <select name="repository">
            <!-- ... -->
        </select>
    </section>
</form>
有关详细信息,请参阅和文档

就你的信息而言,我认为你对论点之间的区别有点困惑:

保存
模型。保存([属性],[选项])

论点如下:

获取
模型。保存([选项])

save
接受两个参数,其中回调位于第二个参数中,因此这是可行的:

model.save {},
  success: (model) => ...
  error: => ...
但是
fetch
只接受一个参数,回调应该在该参数中,因此:

@model.fetch {headers : @token},
  success: (model) => ...
  error: => ...
无法作为
fetch
工作,甚至看不到
success
error
回调。您应该这样说:

@model.fetch
  headers: @token
  success: (model) => ...
  error: => ...

要获取
fetch

@muistooshort的所有三个参数,更新了问题。对于这个模糊的问题,很抱歉,我仍在尝试找出coffeescript。做到了这一点,我实际上使用了“change select”,它到目前为止仍然有效,因为我只有一个select元素。感谢您提供的信息。正在执行onChange函数,我可以看到f当我选择某个内容时,对api的蚀刻调用,但消息现在仍然显示。什么消息?您为什么希望它显示?显示在哪里?在fetch调用成功或出错时,我尝试在网页顶部显示消息。(在.assignment类中)下面onSubmit上的类似函数对.message类也有同样的作用,它可以工作。知道我哪里出错了吗?看看我的更新,你调用的
fetch
参数错误。你能发布你试图实现的工作代码吗?
@model.fetch {headers : @token},
  success: (model) => ...
  error: => ...
@model.fetch
  headers: @token
  success: (model) => ...
  error: => ...