我觉得这是一个非常简单的问题,我只是不知道如何修复它。目前我有一个显示如下模板的插座:
user.hbs:
<div id="user-profile">
<img {{bind-attr src="avatarURL"}} alt="User's Avatar" class="profilePic"/>
<h2>{{name}}</h2>
<span>{{email}}</span>
<p>{{bio}}</p>
<span>Created {{creationDate}}</span>
<button {{action "edit"}}>Edit</button>
{{outlet}}
</div>
要在插座处呈现的模板是:
user_edit.hbs:
<div id="user-edit">
<h3>Edit User</h3>
<div class="panel-body">
<div class="row">
<label class="edit-user-label">Choose user avatar</label>
{{input class="form-control" value=avatarUrl}}
</div>
<div class="row">
<label>User name</label>
{{input class="form-control" value=name}}
</div>
<div class="row">
<label class="edit-user-label">User email</label>
{{input class="form-control" value=email}}
</div>
<div class="row">
<label class="edit-user-label">User short bio</label>
{{textarea class="text-control" value=bio}}
<div>
<div class="row">
<button {{action "save"}}>SAVE</button>
<button {{action "cancel"}}>CANCEL</button>
</div>
</div>
</div>
当我第一次访问用户路线时,由于未单击按钮,因此无法显示插座。按钮挂在控制器上,该控制器负责操作。该操作只会转换到模板在插座上显示的路径。它看起来与预期的一样,但是当我点击其他用户模型时,前一个用户的插座仍然没有<div class="panel-body"> </div>
中的所有内容。所以Ember在转换时隐藏了panel-body div,而不是用户编辑div。如果您需要更多信息,我将很乐意提供。
以下是控制器: UserController的:
App.UserController = Ember.ObjectController.extend({
actions: {
edit: function() {
this.transitionToRoute('user.edit');
}
}
});
这是userEditController:
App.UserEditController = Ember.ObjectController.extend({
actions: {
save: function() {
var user = this.get('model');
user.save();
this.transitionToRoute('user', user);
},
cancel: function() {
var user = this.get('model');
this.transitionToRoute('user', user);
}
}
})
答案 0 :(得分:0)
您好,为什么不使用{{#link-to&#39;编辑&#39; model}}而不是action ??? 你可以将模型传递给link-to,这样你就不必在控制器中得到模型然后转换到转换