問題タブ [canjs-view]
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.
canjs - canjsモデルが口ひげテンプレートに入力されていません
私は学習を始めたばかりのCanJsに非常に慣れていません。デバッグできない以下の問題に直面しています。
私は以下のようなモデルを持っています:
GET /resources/localized ---> 利用可能なローカライズされた言語を取得します。
そして、私は以下のようにコンポーネントを定義しました
initView には、以下のような口ひげテンプレートがあります。
しかし、問題はロケールが設定されていないことです。/resources/localized のネットワーク呼び出しを確認できました。ここにあるポインタは、これを理解するのに本当に役立ちます。
canjs - Can.js で表示するための日付値のフォーマット
すべての日付は、バックエンドからISO 8601としてフォーマットされてい2014-01-01T12:45:30Z
ます。アプリケーション全体で、それらをさまざまな形式で表示したい...
- 表の略記、例えば
Jan 1
- 詳細ビューのより長く、より明確な形式
Monday, January 1st
。
解決策フォーマットを渡すことができるヘルパーを作成しました。簡単です。
問題現在、ブートストラップ datepickerを実装していますが、これらの要件をどのように取得できますか...
- 私のモデルの日付はISOとしてフォーマットされています
can-value
テンプレート内で入力にバインド- ユーザーおよび日付ピッカーの表示形式MM/DD/YY
モデルは非常に大きく、多くの日付があるため、モデル内のすべての日付値を計算する必要がない場合のボーナス ポイントです。
canjs - CanJS で外部ファイルからテンプレートを読み込む
以下のコードを index.html に追加すると正常に動作しますが、外部ファイルで定義したいので、.html でロードしcan.view
ます。
別の html ファイルを作成した場合、そこからテンプレートをロードするにはどうすればよいですか?
javascript - Canjs – リストを反復するときにどの口ひげタグをいつ使用するか?
Can.js で同じことを行うには、いくつかの異なる方法があるようです。これは素晴らしいことです。ただし、一部の方法は他の方法とは少し異なり、DOM のレンダリングおよび更新方法に影響を与える可能性があります。誰かがニュアンスを明確にしてくれれば幸いです。
この選択が興味深いシナリオは、デフォルトのテキストまたは空のリストのプレースホルダーが必要な場合だと思います。
{{#if list}} および {{#if list.length}}
これらは同じではありません。空の配列と can.List の両方が に対してレンダリングされ{{#if list}}
ます。
{{#各リスト}}
だから私たちが学んだことを使って#if
...
{{#リスト}}
これは、両方の世界で最高のものになることを意図していると思います。これはブロック ヘルパーであるため、{{else}}
.
問題は、これは で行った html を生成できないということです#each
。
- すべてをタグでラップする
<ul>
と、リストが空であるかどうかに関係なくレンダリングされます - タグ
<ul>
を最初のブロック (肯定的なブロック?肯定的なブロック?) に貼り付けると、毎回レンダリングされます。
したがって、実装はマークアップに依存しているようです。けっこうだ。
これがこすりです。
おそらく、 DOMを別の方法#each
で#list
更新します。ドキュメントから#each
...
キーの値が can.List の場合、結果の HTML はリストが変更されると更新されます。リストの変更が発生すると、最小限の DOM 要素の変更のみが発生します。
したがって、リストに 1 つの項目を追加すると、その項目のみがレンダリングされ、項目を削除すると、その要素のみが削除されます。の動作#list
は文書化されていませんが、ブロック全体を再レンダリングする可能性があるという印象を受けています。
質問
どれが最高ですか?より簡潔であることに加え#list
て、利点があるかどうかはわかりませんが、なぜ著者はそれが好ましいと示唆しているのですか?
canjs - テンプレートで閉じられていないタグを自動閉じる
こんにちは、そのようなテンプレートを作成しようとしています
したがって、アイデアは<ul>
、リストの2番目のユーザーの後に上部を閉じて、新しい非表示<ul>
を開き、残りのすべてのユーザーをここに配置することです。しかし、代わりに私は閉じられ<ul>
、最終的なhtmlは次のようになります:
これは私のjsです
タグの自動終了を防ぐ方法はありますか、それとも完全に間違っているのでしょうか?
javascript - オプションがマップを使用してレンダリングされる場合、CanJS can-value は複数選択に対して機能しませんか?
複数選択入力の can-value ヘルパーを使用して、選択した値をレンダリングするのに問題があります。
この問題は特に、オプションを DOM で使用できるようにするのではなく、can.Map を使用してオプションを動的にレンダリングする場合に発生します。
問題を説明するフィドルは次のとおりです。
http://jsfiddle.net/neildcruz19/ramey3zo/6/
コントロール
口ひげ/HTML
この状況を回避する方法はありますか?
canjs - セレクターに一致する要素がコントロール要素に追加されるたびに実行するイベントを Can.Control にバインドする方法は?
私は DateTimePicker ウィジェットを構築しようとしていますが、ウィジェットのインスタンス化について心配したくないので、HTML 本体を要素として取る Can.Control を作成しました。
しかし、現在、入力要素は can.view を使用して DOM でレンダリングされています。コントロール スコープへの新しい dateTime 要素の挿入にイベントをバインドするにはどうすればよいですか?
要素がコントロール要素に追加されたときに、「input.dateTime load」を指定して日付ピッカーをバインドする方法はありますか?
canjs - CanJS: プロダクション用のビュー テンプレートをパッケージ化する方法
ビューテンプレートを本番用にパッケージ化する最適な方法は何ですか?
多数の .stache ファイルがあります。開発中は、can.view() と同期してロードされます。本番環境では、複数の HTTP リクエストを避けたいと考えています。
それを行う正しい方法は何ですか?それらを単一のhtmlファイルまたは単一のjsファイルとしてバンドルする必要がありますか? StealJS はどの形式を使用しますか?