我是Backbone的新手,我在将模型保存到数据库时遇到了问题。点击时,字段'profile'应该更新为'100',但它不起作用:
$ - >
class User extends Backbone.Model
url: -> '/users/' + this.get("id") '.json'
class Users extends Backbone.Collection
model: User
class UserView extends Backbone.View
tagName: "li"
events:
"click" : "changeProfile"
render: -> $(@el).html( @model.get "name" )
changeProfile: ->
$('li').removeClass('selected')
$(@el).addClass('selected')
@model.set( 'profile' : '100' ).save()
users = new Users
users.url = "/users.json"
users.fetch(
success: ->
_.each users.models, (model) ->
view = new UserView( model: model )
$('ul').append view.render()
)
'用户'控制器/'用户'模型是脚手架(并且控制器在json中呈现)。我正在使用Backbone和Rails的最新版本。有人可以帮忙吗?
(Chrome中的Javascript控制台注册了以下错误:“未捕获的TypeError:数字不是函数”)
答案 0 :(得分:0)
url
User
+
缺少class User extends Backbone.Model
url: -> '/users/' + this.get("id") '.json'
#---------------------------------^^
:
this.get("id")('.json')
其中最后一部分的解释如下:
get('id')
并且由于+
返回一个数字,因此会出现“数字不是函数”错误。添加缺少的url: -> '/users/' + this.get('id') + '.json'
以获取字符串连接或使用CoffeeScript的插值:
url: -> "/users/#{this.get('id')}.json"
或
{{1}}