問題タブ [ember-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - Ember コンポーネントからモデルへのデータの受け渡し
私は Ember を初めて使用し、コンポーネントを最適に使用してモデルを変更する方法を見つけようとしています。私は Ember 1.13.7 を使用していて、FixtureAdapter を使用していることを把握しようとしています。次のコードがあります。
アプリ/モデル/client.js
アプリ/ルート/clients.js
アプリ/テンプレート/クライアント/edit.hbs
アプリ/コンポーネント/bootstrap-input.js
アプリ/テンプレート/コンポーネント/bootstrap-input.hbs
ご覧のとおり、変更は渡されるモデルに反映されません。これは一方向のバインディングであるため (これが起こっていると思いますか?)、モデルを直接参照していないためです。positionalParams を使用せず、モデルをコンポーネントに直接渡すと、正常に動作します。例えば:
しかし、私が理解している限り、それは Ember 2 で行う正しい方法ではありません。コンポーネントで行った変更をモデルに反映させて、ルートに保存するにはどうすればよいですか?
ember.js - 単一要素の EmberJs のみの didInsertElement
1 つの要素だけで didInsertElement を呼び出したいのですが、他の要素では呼び出しません。複数の要素を持つコンポーネント テンプレートがありますが、特定の要素でそれを使用したいだけです。
これを行う方法はありますか?はいの場合、良い習慣であるかどうか..他のコンポーネントを指す複数の要素を持つコンポーネントは可能ですか?
javascript - EmberJS: コンポーネントのすべてのプロパティをデフォルト値に設定する toggleProperty
Ember 2.0.1 でネストされたコンポーネントを実装しようとしていますtoggleProperty
が、アクション ハンドラー内で関数を使用すると、奇妙な動作が発生します。
最初のコンポーネントは次のようになります。
.
2 つ目は次のとおりです。
.
このコンポーネントは、comp- 1によって設定された Text というcomp-2
名前の 2 つのボタンを作成します。ボタンをクリックすると、アクション ハンドラで呼び出される関数が実行されるため、テキストがcomp- 2によって設定されたテキストに変わります。この関数を削除するか、fromの設定を削除すると、すべてが期待どおりに機能します。つまり、ボタンのテキストは常にcomp- 1で設定されたテキストのままになります。this.toggleProperty('prop1')
customAction1
prop1
./templates/components/comp-2.hbs
toggleProperty
関数が他のプロパティを元に戻すのはなぜですか?
私は何か間違ったことをしていますか?
実際の動作はこちらで確認できます: http://ember-twiddle.com/90798b4952deb4a83de1
javascript - ストアに関連付けられていない Ember モデルのインスタンスの作成
Ember-data 2.0 で Ember 2.0 を使用しています。
Rails では、モデルの実際のインスタンスを使用してフォームやコンポーネントをモデル化することは非常に一般的です。フォームの場合、posts/new
を渡してテンプレートPost.new
内で使用します。form.html.erb
new Post
Ember では、呼び出しによって壊れたモデルが作成されるため、これは困難になります。代わりに、ストアを使用することをお勧めしますthis.store.createRecord('post');
。
これは問題ありませんが、分離されたコンポーネントを構築する場合はそうではありません。たとえば、ユーザーが複数のモデルを追加できるフォーム、たとえばカテゴリ作成者です。私の頭の中では、構造は次のようになります。
category-form/template.hbs
次に、component.js は次のようになります。
category-form/component.js
上記の例は機能しますが、代わりにthis.store.createRecord
. しかし、私が知る限り、コンポーネントはストアにアクセスできません。これは、グローバル状態をいじるコンポーネントになるため、問題ありません。また、使用時にcreateRecord
、ユーザーがモデルを保存せずに移動すると、ストアに多くのモデルが残ってしまいます。
category-form
この例のコンポーネントを残りのグローバル状態から完全に分離したいと考えています。
私の質問は、ember ロジックを使用してこれを正しく処理するにはどうすればよいですか?
ember.js - Ember 2.0 コンポーネント - 属性の命名規則
コンポーネント属性の命名規則または優先命名規則はありますか?
私は破線を見てきました:
そしてキャメルケース:
独断的なフレームワークである ember は、これらの命名規則の少なくとも 1 つを強制すると思っていたでしょう。