問題タブ [canjs-control]
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.
jquery - CanJsの要素に添付されたコントロールの名前を見つける
Canjs を使用して Web アプリケーションを構築しています。今、私はそれに取り組んでいる間に問題を抱えています。
コントローラーは単一の HTML 要素で変更され、その特定の要素に接続されたコントローラーは、新しいコントローラーが接続されても破棄されません。そこで、何か他のものを取り付ける前に、それに取り付けられているすべてのコントローラーを破壊することにしました。
2つのクエリが残っています
特定の要素に接続されているコントローラーを見つけるにはどうすればよいですか? .controller() が機能しないため
破壊を呼び出すにはどうすればよいですか?
よろしくお願いします。
jquery - CanJS クリックイベントの実装
プロジェクトに CanJS (js フレームワーク) を使用していますが、問題があります。
次のように book.js にいくつかのコードを書きました。
また、私のhtmlファイルは次のとおりです。
今、クラスgotoPrevPage
イベントで div をクリックしてもエラーは表示されませんが、Chrome コンソールを使用して上記のイベントの 2 行のコードを書き留めると、POST が実行されて動作します。理由はわかりません。
javascript - CanJS テーブルクリックイベント
私はcanJSアプリケーションを書いていますが、これまでのところhtmlテーブルのクリックイベントの処理に成功しています。次のコードを使用します。
- td全体ではなく、テーブルの最初の列のクリックだけを聞く方法は?
- td (el) から特定の列のデータを取得する方法は?
model-view-controller - CanJS - コントロール通信
私は現在 CanJS を学んでいるので、非常に基本的な小さなデモを試してみたいと思います。デモでは、さまざまなタイプのモバイル リチャージ プランが上部 (ラジオ ボタン) に表示され、各プランを選択すると、対応する価格オプションが下部の表に表示されます。
このデモでは、2 つの Model 、2 つの Control 、および 2 つの Template ファイルを作成します。私の質問は、2 つのコントロールがどのように相互に通信できるかということです。標準的な方法は何ですか?
今のところ、インスタンスを介してコントロール メソッドを直接呼び出していますが、それが正しい方法かどうかはわかりません。Can.Routeについても教えてください。
出力 http://jsfiddle.net/sabhab1/2mxfT/10/
データ
モデル
コントロール
意見
メインコール
javascript - CanJS を使用してドキュメントでトリガーされるイベントのグローバル リスナー/コントローラーを設定する
おそらく一般的なユース ケースではありませんが、ドキュメントで発生するカスタム イベントがいくつかあり、アプリケーションはそれらをリッスンします。例: http://jsbin.com/uradod/3/edit
これをCanJSコントローラーに変換するにはどうすればよいですか? 私はこれに似たものでした: http://jsbin.com/uradod/6/edit。出来ますか?もしそうなら、どのように?
javascript - canjsは、レンダリング後にObserve.Listの要素にコントロールをアタッチします
一般的に問題は、Control でのクリック アクションが機能しないことです。
以下のコードでは、Observe.List を使用してアイテムを含むリストを生成したときの状況を確認できるため、リストに新しい要素が自動的に発生すると更新され (以下を参照)、init 関数の最初のコントロールで生成されます。
また、最初のコントロールでは、新しい要素がリストに追加されると、新しく生成された要素の「{files} add」メソッドにコントロールを追加します。
問題は、2 番目のコントロールのクリック イベントが機能しないことです。自動再生成 Observe.List が終了する前にそれをしようとしたためだと思います。その証拠は、jquery がまだ要素になっていないことです。
自動再生成 Observe.List によってレンダリングされる前に、Contol ( '{files} add' )を添付することは可能ですか? 新しい要素に適切な方法でコントロールを設定するにはどうすればよいですか? どういうわけかそれを視野に入れることはできますか?
リストのビュー:
リスト要素のコントロール。ここで問題です!
javascript - can.Control.defaults とオプションのマージ
can.js を使用すると、次のように制御できます。
.. そしてこのマークアップ:
..次に、そのコントロールのインスタンスを次のように作成すると:
私が期待するのは、単語がnewtext
挿入されnested2
た 2 つの div と単語が挿入された 2 つの div ですが、実際に表示されるのは単語がnewtext
挿入された 2 つの div です。
ネストを使用しないようにオプション オブジェクトを変更し、すべてのオプションを最上位に配置する場合、問題はありません。
そのため、オプションをデフォルトとマージするときに、canJS がネストされたオブジェクトを正しくマージしていないように見えます。これは事実ですか?分岐せずにこの機能をサポートする方法を知っている人はいますか? それとも、明らかな何かが欠けていますか?これができれば、面倒なオプション作成コードをたくさん書く必要がなくなります。
javascript - CanJS 右クリック イベント
CanJSで右クリックイベントをバインドするにはどうすればよいですか?
私は次のことを試みましたが、クリックは左クリックのみをキャプチャすると思います(ev.whichは右クリックで3を記録しません)。
javascript - Can.js - can.Compute をプロトタイプに追加する
can.computeをcan.Controlインスタンス プロトタイプに追加するにはどうすればよいですか? 拡張を使用してインスタンス関数に渡そうとしていますが、クラスのすべてのインスタンスはコンピューティングの同じ単一のインスタンスを共有しています。
明らかに、これを init 関数で行うこともできますが、そうしないほうがよいので、将来これを継承するので、親の init を呼び出すことを覚えておく必要はありません。誰かがより良い方法を持っていることを願っています。
javascript - CanJS で子クリックから親イベント コールバックにデータを渡す
CanJS コントローラーでは、別のクリック ハンドラー内でクリック イベントを使用しています。子ハンドラーから親ハンドラーにデータを渡すにはどうすればよいですか
formData を this.options に入れたいです。herethis
はのオブジェクトを表すため、クリックイベントsomeController
内で直接使用することはできません。someFormButton
また、正しいアプローチに従っているかどうかを知りたいですか? シナリオをクリックするとsomeButtonSelector
、フォームが表示されます。formData を現在のオプション オブジェクトに入れたい