6

アプリでカスタム フィールドを処理する汎用ビューを作成しようとしていますが、これを機能させるのに苦労しています。シナリオは次のとおりです。fieldDefカスタム フィールドを定義するオブジェクトと、値を持つvalueObject配列customFieldsを持つ があります。私がやろうとしていることは、次のようなものです:

{{view Ember.TextField valueBinding="valueObject.customFields.[fieldDef.name]"}}

fieldDef.nameそれはリテラルとして扱われるため、明らかに機能しません。TextField クラスをオーバーライドしようとしましたが、バインドできないようです。

これを達成する方法について何か提案はありますか?

ありがとう、スコット

4

3 に答える 3

1

@ahmacleod 素晴らしい回答者。誰かが興味を持っている場合に備えて、選択を拡張することもうまく機能します:

import Ember from 'ember';

export default Ember.Select.extend({
  fieldId: null,
  values: null,

  valueChange: function() {
    var fieldId = this.get('fieldId');
    var values = this.get('values');
    if (values && fieldId) values[fieldId] = this.get('value');
  }.observes('value')
});

通常のコンポーネントとして呼び出します (components/dynamic-select.js)

{{#each id in fieldIds}}
   {{dynamic-select content=fieldIds fieldIdBinding="header"       
     valuesBinding="fields"}}
{{/each}}
于 2015-02-12T22:13:03.177 に答える
1

mutヘルパーの助けを借りて、入力値をオブジェクトの動的キー (変数) にバインドできるようになりました。

https://guides.emberjs.com/v2.6.0/templates/input-helpers/#toc_binding-dynamic-attribute

こんな感じでアクセスできます。

var Object = {};
var key = "firstName";

このように入力ヘルパーでキーをバインドできます。

{{input value=(mut (get Object key))}}

{{Object.firstName}} // Prints the dynamic value in textbox
于 2016-06-22T11:08:24.373 に答える