Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 切换单个对象的视图/组件_Ember.js - Fatal编程技术网

Ember.js 切换单个对象的视图/组件

Ember.js 切换单个对象的视图/组件,ember.js,Ember.js,我试图模仿类似于《余烬待办指南》的东西,在那里我可以在编辑状态之间切换,但使用组件。如果我的控制器是: App.IndexController = Ember.ObjectController.extend({ isEditing: true, actions: { enableEditing: function(){ this.set('isEditing', true) } } }) 如何一次仅为模型的一项切换编辑状态?当前,

我试图模仿类似于《余烬待办指南》的东西,在那里我可以在编辑状态之间切换,但使用组件。如果我的控制器是:

App.IndexController = Ember.ObjectController.extend({
   isEditing: true,
   actions: {
      enableEditing: function(){
         this.set('isEditing', true)
      }

   }
})

如何一次仅为模型的一项切换编辑状态?当前,单击“编辑”按钮可切换模型中每个项目的编辑状态


另外,是否有更好的方法替代
{{if isEditing}{{else}}{{/if}}
方法?

您需要使用一个itemController,它将每个项包装在自己的控制器中。使用数组控制器,您只需在控制器
itemController
上定义一个属性,并为其指定要使用的对象控制器的名称

控制器 模板 在模板中,您将迭代控制器而不是模型

{{#each item in controller}}
  ...
{{/each}}

提示 最后一个提示,如果您的动作名称与哈希中的动作名称不匹配,Ember会对您大喊大叫:

未捕获错误:未处理“启用”操作。如果是的话 处理该操作时,此错误可能是由于从 控制器中的操作处理程序,导致操作冒泡


我在原始问题中提出的问题是,除了
{{if}{{else}}
方法之外,还有更好的替代方法吗?如果else是一种完全可以接受的方法,另一种可能的方法是创建一个用于编辑的子路由,并使用模型转换到该路由,这取决于您创建的编辑表单有多复杂。
{{#each item in controller}}
  ...
{{/each}}