转换到不同路线时,Ember模板不会移除

时间:2014-04-24 20:08:20

标签: ember.js handlebars.js

我觉得这是一个非常简单的问题,我只是不知道如何修复它。目前我有一个显示如下模板的插座:

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);
        }
    }
})

1 个答案:

答案 0 :(得分:0)

您好,为什么不使用{{#link-to&#39;编辑&#39; model}}而不是action ??? 你可以将模型传递给link-to,这样你就不必在控制器中得到模型然后转换到转换

Look at this