就在我认为我正在处理 ember 时,这种情况发生了,我碰到了一堵砖墙。
我有
App.Router.map(function() {
this.resource('customers', function() {
this.resource('customer', {
path : ':customer_id'
});
客户路线:
App.CustomersRoute = Ember.Route.extend({
model: function() {
return this.store.find('customer');
},
客户控制器:
App.CustomerController = Em.ObjectController.extend({
needs: ['state'],
isEditing: false,
isNotEditing: Ember.computed.not('isEditing'),
actions : {
startEditing: function() {
this.set('isEditing',true);
this.set('validationErrors', '');
},
save: function() {
和这些模板:
<script type="text/x-handlebars" data-template-name="customers">
...
{{outlet}}
...
</script>
<script type="text/x-handlebars" data-template-name="customer">
...
{{#if isEditing}}
<div class="well well-sm">
<a class="btn btn-success" {{action save}}>Save</a>
<a class="btn btn-warning" {{action cancel}}>Cancel</a>
</div>
{{else}}
<div class="well well-sm">
<a class="btn btn-primary" {{action startEditing}}>Edit</a>
<a class="btn btn-danger" {{action delete}}>Remove</a>
</div>
{{/if}}
这对我来说一切正常。我可以选择一个客户,按编辑按钮,启用表单输入,按保存按钮,更改的数据将持久返回到数据库
然而:这是我的砖墙。
如何启用功能以创建新记录:我不想复制编辑表单,只显示空白
我假设我需要将“新”放入路由器地图
this.resource('customers', function() {
this.resource('customer', {
path : ':customer_id'
});
route('new');
});
但是我要创建一个 CustomerNew 控制器和 CustomerNew 路由以及 CustomerNew 模板吗?
我已将操作放入客户控制器
<a class="btn btn-primary btn-xs pull-right" {{action startNew}}>New</a>
我真的需要创建一个路由和控制器和模板来处理新操作吗?或者我可以重复使用 customer/1 route/controller/template 吗?
谢谢