0

我将尝试在 towerjs 中创建一个控制器,但是在更新操作时出现错误:

TypeError: Property 'id' of object #<Object> is not a function

这里看起来我的动作:

update: ->
  App.User.find @params.id (error, user) =>
    user.updateAttributes @params.user, (error) =>
      if error
        @render "edit", locals: user: user
      else
        @render "show", locals: user: user 

控制台向我显示传递了 id 参数:

Parameters:
{ user: 
  { name: 'admin',
    email: 'example@domain.com',
    password: '21232f297a57a5a743894a0e4a801fc3' },
  id: '4faa6c614b2ce49b34000001',
  action: 'update',
  format: 'html' }

更多信息:显示、编辑、销毁中内置了相同的操作,并且它们正在工作。所有操作都使用相同的 _form 部分。

4

1 回答 1

1

这段代码:

f @params.id (a, b) => ...

相当于:

f(@params.id((a,b) => ...))

所以你试图@params.id作为一个函数调用并将你的(error,user) =>函数@params.id作为它的参数传递给它。我认为您想将@params.id和作为两个参数传递(error,user) =>App.user.find因此请添加逗号:

update: ->
  App.User.find @params.id, (error, user) =>
    #---------------------^
于 2012-05-09T16:08:38.633 回答