Ember.js 在用户访问期间隐藏链接。新建
我有一个Ember.js 在用户访问期间隐藏链接。新建,ember.js,Ember.js,我有一个users模板,它是一个用户表。在该表下是创建新用户的链接。为了获得更好的用户体验,我想使用class=“disabled”禁用它,或者在创建新用户时隐藏该链接。最好的方法是什么 index.html <script type="text/x-handlebars" data-template-name="users"> <div class='row'> <div class='span7'> <table class=
users
模板,它是一个用户表。在该表下是创建新用户的链接。为了获得更好的用户体验,我想使用class=“disabled”
禁用它,或者在创建新用户时隐藏该链接。最好的方法是什么
index.html
<script type="text/x-handlebars" data-template-name="users">
<div class='row'>
<div class='span7'>
<table class='table table-striped'>
<tbody>
{{#each model itemController="user"}}
<tr {{bindAttr class="isDirty:warning"}}>
<td>{{lastName}}</td>
</tr>
{{/each}}
</tbody>
</table>
<p>
{{#linkTo 'users.new' classNames="btn btn-small"}}Create a new user{{/linkTo}}
</p>
</div>
<div class='span5'>
{{outlet}}
</div>
</div>
</script>
<script type="text/x-handlebars" data-template-name="users/new">
<p><strong>Last name</strong><br>{{view Ember.TextField valueBinding=lastName}}</p>
<p>
{{#if isDirty}}
<button {{action 'save' this}} class="btn btn-small">Save</button>
{{else}}
<button class="btn btn-small disabled">Save</button>
{{/if}}
</p>
</script>
我认为一个可能的解决方案是在usersController中添加一个属性,类似于“isCreating”,您可以在UsersNewRoute的activate钩子中将其设置为true,并在deactivate中重置为false。这将类似于:
App.UsersNewRoute = Ember.Route.extend({
activate: function() {
this.controllerFor('users').set('isCreating', true);
},
deactivate: function() {
this.controllerFor('users').set('isCreating', false);
},
model: function() {
return App.User.createRecord();
},
renderTemplate: function() {
this.render({ into: 'users' });
}
});
显然,您将在模板中使用此属性并绑定类以隐藏按钮。当在
users中定义模型时,如何使用isNew
签入users
模板。new
?谢谢!我希望有一个“更少代码”的版本,但它的工作原理就像一个魔咒。
App.UsersNewRoute = Ember.Route.extend({
activate: function() {
this.controllerFor('users').set('isCreating', true);
},
deactivate: function() {
this.controllerFor('users').set('isCreating', false);
},
model: function() {
return App.User.createRecord();
},
renderTemplate: function() {
this.render({ into: 'users' });
}
});