查看TextField或只是文本

时间:2013-04-22 07:45:12

标签: ember.js

我想创建一个视图,如果条件满足则应该呈现文本字段,否则只创建文本。

是否有关于编写可重用视图的良好文档?

编辑23.04.2013 - 我的原地编辑解决方案

我最终得到了以下内容进行编辑(感谢Myslik)。我将添加一些更多的功能,如“空”占位符。

CoffeeScript的:

App.InplaceTextField = Ember.View.extend
  tagName: 'div'
  isEditing: false
  template: Ember.computed( ->
    return Ember.Handlebars.compile([
      '{{#if view.isEditing}}',
      '{{view Ember.TextField valueBinding="view.content"}}',
      '{{else}}',
      '{{view.content}}',
      '{{/if}}'
    ].join('\n'))
  )
  focusOut: ->
    @get('controller').get('store').commit()
    @set('isEditing', false)
  click: ->
    @set('isEditing', true)

车把:

title是我模型的一个属性,传递给我的观点

{{view App.InplaceTextField contentBinding="title"}}

1 个答案:

答案 0 :(得分:0)

你真的需要为它写一个视图吗?您可以在模板中执行此操作:

{{#if condition}}
    {{input value=name}}
{{else}}
    {{name}}
{{/if}}

修改

因此您可以像这样自定义Ember.TextField

Ember.TextField.reopen({
    attributeBindings: ['disabled']
});

然后你可以这样做:

{{view Ember.TextField valueBinding="value" disabledBinding="condition"}}