0

条件が満たされた場合はテキストフィールドをレンダリングし、そうでない場合はテキストだけをレンダリングするビューを作成したいと思います。

再利用可能なビューの作成に関する適切なドキュメントはありますか?

Edit 23.04.2013 - インプレース編集のための私のソリューション

インプレース編集については、次のようになりました(Myslikに感謝します)。「空の」プレースホルダーなどの機能をさらに追加します。

コーヒースクリプト:

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私のビューに渡される私のモデルの1つの属性です

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

1 に答える 1

0

そのためのビューを本当に書く必要がありますか? テンプレートでこれを行うことができます:

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

編集:

Ember.TextFieldしたがって、次のようにカスタマイズできます。

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

次に、次のようなことができます。

{{view Ember.TextField valueBinding="value" disabledBinding="condition"}}
于 2013-04-22T11:31:21.987 に答える