我想在OnChange事件上获取JSON。并对现有的haml页面进行更改。 我的目标是用json值填充另一个选择字段。目前,我只是试图打印一条json被提取的消息。但是我在html中没有任何改变。将事件绑定到函数Coffeescript。 Backbone.js
在控制台的网络选项卡中,我看到正在创建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>")
haml文件看起来像这样。
.message
.assignee
%form
%section.repo-select
%select{name: 'repository'}
- for repository in @repositories.models
- full_name = repository.get('full_name')
- if localStorage['new_issue_last_repo'] == repository.get('full_name')
%option{value: full_name, selected: 'selected'}= repository.get('full_name')
- else
%option{value: full_name}= repository.get('full_name')
一旦json被提取,我怎样才能让.assignee改变。另外我怎样才能访问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>")
@ muistooshort更新了问题。对于模糊的问题抱歉,我仍然试图找出咖啡标记。 – shshank