Ember.js “编辑表单”按钮双击

Ember.js “编辑表单”按钮双击,ember.js,Ember.js,我有一张表格里的记录列表。每当双击一行时,我想显示一个编辑器窗体。最好(但不是必须)路由操作,以便表单具有类似/songs/edit/:song_id的URL。我看到的大多数类似示例都将一些文本或按钮包装在#linkTo括号中,但是我希望从视图中执行类似的操作,这样我就有了表单的事件: App.SongView = Em.View.extend({ doubleClick: function(evt) { something here; } }); 您可

我有一张表格里的记录列表。每当双击一行时,我想显示一个编辑器窗体。最好(但不是必须)路由操作,以便表单具有类似/songs/edit/:song_id的URL。我看到的大多数类似示例都将一些文本或按钮包装在#linkTo括号中,但是我希望从视图中执行类似的操作,这样我就有了表单的事件:

App.SongView = Em.View.extend({
    doubleClick: function(evt) {
        something here;    
    }
});

您可以使用{{action}}助手,并指定
target=view
,而不是使用{{linkTo}}助手(请参阅)

要处理更改url,可以调用
transitionTo
,并为其提供SongsEdit路由以及参数

模板:

{{#each record in records}}
   <div class="record" {{action editForm record on="doubleClick" target="view"}}> ... </div>
   ...
{{/each}}
请注意,您实际上不必在视图中处理此操作;在控制器中处理这个问题也是有意义的

或者,如果要使用内置的
双击处理程序来处理它,则不需要在模板中指定任何内容,只需确保您有权访问要传递到
传递到
的单个记录即可

它可能看起来像:

doubleClick: function(e) {
  record = this.get('controller.content') // or however you're wrapping the underlying record
  this.get('controller').transitionToRoute('editRoute', record);
}

当然,您的路由将负责显示实际的编辑表单。

您可以使用{{action}}助手,而不是使用{linkTo}助手,并指定
target=view
(请参阅)

要处理更改url,可以调用
transitionTo
,并为其提供SongsEdit路由以及参数

模板:

{{#each record in records}}
   <div class="record" {{action editForm record on="doubleClick" target="view"}}> ... </div>
   ...
{{/each}}
请注意,您实际上不必在视图中处理此操作;在控制器中处理这个问题也是有意义的

或者,如果要使用内置的
双击处理程序来处理它,则不需要在模板中指定任何内容,只需确保您有权访问要传递到
传递到
的单个记录即可

它可能看起来像:

doubleClick: function(e) {
  record = this.get('controller.content') // or however you're wrapping the underlying record
  this.get('controller').transitionToRoute('editRoute', record);
}

当然,您的路由将负责显示实际的编辑表单。

我使用了后一种技术,这就成功了:)一个后续问题:我的路由名为“edit_route”,而不是“editRoute”。我相信我是在遵循惯例……我实际应该使用的是下驼峰模式吗?我使用了后一种技术,这就成功了:)一个后续问题:我的路线被命名为“编辑路线”,而不是“编辑路线”。我相信我是在遵循惯例……下驼峰案例是我实际应该使用的吗?