問題タブ [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.jsで親プロパティをオーバーライドするには? (具体的には数値入力の挙動)
Ember Input を数値入力として拡張する新しいコンポーネントを作成したいと考えています。このクラスのユーザーが自分の値をnumber-input-component のvalue
プロパティにバインドする場合、数値 (または無効な値の場合は NaN) のみを取得する必要があります。Ember Input では、value に属性バインディングがあります。
次のように、 number-input-componentで「value」という名前の計算されたプロパティを定義しました。
期待どおりに機能しますが、双方向バインディングでは機能しません。(実際には DDAU では問題ありません。ただし、双方向バインディングでは機能するはずです。)
注:ユーザーが自分の値を「numericValue」にバインドできるように、「numericValue」(ここに表示) などの別のプロパティを提供できることはわかっています。しかし、ユーザーをvalueとnumericValueの両方で混同したくありません。
アップデート:
フィールドへの入力中は、タイプミスによって値がリセットされません。たとえば、ユーザーが「123456789」を書き込もうとして誤って「12345678p」を押しても、入力がリセットされることはありません。値が無効な場合、エラー メッセージを表示したり、値をリセットしたりすることは、コンポーネントの責任ではありません。
あなたが見ることができるフィドルがあります:Ember-Twiddle
ember.js - Emberjs - 保存後にコンポーネントのフィールドをリセットする方法は?
ゲーム内に Comment という埋め込みオブジェクトがあります。各ゲームには多くのコメントを付けることができます。
ユーザー (親と呼ばれる) がゲーム ページを表示すると、コメントを残すことができます。
私が抱えている問題は、コメントが保存された後、コメント フィールドの本文を空に戻すことができないように見えることです。
これはコンポーネントです:
エラーは 'this.set' 行にあります - this.set は関数ではありません
私が見つけたすべての例は、コントローラーでこれを行うか、ルートの変更時に新しいレコードを作成することに関するものです (ただし、既存のページに別の埋め込みオブジェクトを追加するだけなので、私の例ではルートは変更されません)。
ember.js - コンポーネントでコントローラーが監視するプロパティを渡す方法
コントローラーで監視されているプロパティをコンポーネントに渡すアプリケーションで作業していますが、未定義の値を取得しています。私はember 1.6を使用しています
コンポーネントの呼び出し方法:-
コンポーネントの実装は:-
}))
コンポーネント値として使用されるcurrentValは、コントローラーで監視されるプロパティです。スライダーをスライドするたびに、currentVal がコンポーネントにバインドされているため変更されます。デフォルト値は 50 です。コントローラーは正常に動作しています。
コントローラー部分は次のとおりです。
コンポーネントでは、最小値を正しく取得していますが、値を取得していません。それは未定義になっています。
コンポーネントでプロパティ値を取得するには?
アップデート
コンポーネントで次のメソッドを使用して変数を取得できます:-
1) 変数を静的な値でコンポーネントに直接渡すと、機能します。たとえば、range-slider コンポーネントで渡される最大値。
2)コントローラーで定義されている静的変数を渡す場合、たとえばコントローラーで
コンポーネントにダミー値を渡せば、コンポーネント部分で読めるようになります。
しかし、プロパティが計算されたプロパティである場合、それは機能しません。
jquery - ember 統合テストでコンポーネントに焦点を当てる/ぼかす方法は?
Ember.js コンポーネントのテスト中にフォーカス イベントとブラー イベントをトリガーするにはどうすればよいですか?
this.$().focus();
またはthis.$('input').focus();
動作しているように見えますが、phantomjs と chrome では動作が異なります。
またthis.$().blur();
、this.$().focusout();
phantomjs と chrome の両方が動作していないようです。
css - CSS ファイルを Ember.js のどこに配置しますか?
アプリケーションにはいくつかのカスタム スタイル定義があります。現在、すべての開発者が にスタイルを追加していapp.css
ます。しかし、私たちはそれを巨大なファイルにしたくありません。また、スタイル クラスを台無しにしたくありません。
カスタム スタイルをアプリケーションに配置するにはどうすればよいでしょうか。それを行うためのベストプラクティスはありますか? (すべてのガイド/ドキュメントの参照は大歓迎です。)
2 つ目の質問: 特定のルートまたはコンポーネントのスタイルを配置する場所はありますか?
更新:より具体的には、次のスタイルを特定のルートまたはコンポーネントのみに適用したいと考えています。
ember.js - 初期化時に値を割り当てた後、emberjsの双方向バインディングが一時的に壊れる
init
ライフサイクル フックでコンポーネントの 1 つにデフォルト値を割り当てようとしています。親コンポーネントから未定義の値が渡された場合。最初は、すべてが期待どおりに機能しているように見えます。ただし、コンポーネントが再レンダリングを強制された場合 (おそらく親コンポーネントでの別のプロパティ値の更新を介して); 親コンポーネントの未定義の値がコンポーネントに書き戻されます。
これの意味は; 初期化時に行った値の割り当てが親コンポーネントに反映されていない、つまり双方向バインディングが一時的に機能していません (親コンポーネントと子コンポーネントの値が同期されていません)。それは予想される動作ですか、それともsthがありませんか。初期化イベントについて重要ですか?コンポーネントの未定義の値を初期化する適切な場所はどこですか? 簡単なイラストについては、ひねりを参照してください。
ember.js - init でのプロパティの割り当てと didUpdateAttrs が異なるのはなぜですか?
Ember.js Guideには、次のような例があります。
errors
プロパティへの代入が と で異なるのはなぜinit
ですか
didUpdateAttrs
? それらの違いは何ですか?
@locksの回答に従って更新:
可観測性はいつ設定されますか? 初期化後?しかし、親コンポーネントの値は、init の前に子コンポーネントのプロパティに割り当てられていました。
ember.js - 別のコントローラーの残り火でアプリケーションコントローラーのプロパティをバインドする方法
ApplicationController に検索プロパティがあり、検索の入力フィールドにリンクされています。ProjectControllerでApplicationControllerの検索フィールドにアクセスしたい。同期する必要があります。次のコードを使用しますが、機能しません。
/ app/controllers/projects/index.js (プロジェクト コントローラー)
/ app/controllers/application.js (アプリケーション コントローラー)
アプリケーション.hbs
{{input value = search}
}