立即声明:不要将此问题视为真正的应用程序。一切都是为了自我教育和学习而专门完成的。jsSpine.js和两个控制器
其次,我知道关系。我不想使用,因为世界比简单的关系更广泛。作为一个例子,一个包含你想要显示在线用户的文章的页面,或者是所有参与写文章的用户。
想象一下,一个普通的应用程序可以显示您可以创建,显示,编辑和删除的帖子列表。所有关于spine.js,一切工作正常。基于spine.rails3应用程序。 然后我添加了带有post_id和body字段的评论模型。并在veiw Show上添加了按钮评论。我想要的 - 就是通过按下按钮来加载评论。 我comment.js.coffee:
class App.Comment extends Spine.Model
@configure 'Comment', 'post_id', 'body', 'created_at', 'updated_at'
@extend Spine.Model.Ajax
@fetch_comments: (id) =>
params =
data: {post_id: id}
url: '/comments/fetch'
processData: true
@ajax().fetch(params)
true
在Rails控制器:
def fetch
@comments = Comment.where("post_id = ?", params[:post_id])
respond_with @comments
end
在Chrome控制台一切工作正常:
App.Comment.fetch_comments(11)
App.Comment.all()
,并从服务器接收所有评论post_id = 11.
而我的问题是,我不知道如何o不要从控制器的帖子同样的事情:-( 在我posts.js.coffee:
class Show extends Spine.Controller
events:
......
'click [data-type=show]': 'comments'
comments: ->
@log(@item.id)
new App.Comments(@item.id)
Аnd这里的问题....如何实现控制器App.Comments,所以它从加载服务器需要注释? 现在我的位指示的样子:
Comment = App.Comment
class Index extends Spine.Controller
constructor: (id)->
super
**App.Comment.fetch_comments(id)**
class App.Comments extends Spine.Stack
className: 'comments stack'
controllers:
index: Index
routes:
# '/comments/new': 'new'
'/comments/': 'index'
className: 'stack comments'
并在所选线路不能正常工作。我不知道该怎么办...
主要问题是如何从另一个控制器调用具有特定参数的控制器,并将结果显示在主控制器中?
也许这是noob问题,但我希望你的帮助。 非常感谢提前。
对不起,但我不太明白。如何在** Index **控制器中使用** @ stack **?我如何访问索引控制器中的** post_id **?当然在App.Comments中。 – none
我了解@stack。我会尽量使用。感谢名单。 – none