問題タブ [knockout-templating]

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.

0 投票する
1 に答える
2972 参照

javascript - KO テンプレート内の JavaScript

ノックアウト テンプレート内にスクリプトを配置する方法は?

これは機能しません:

これは、使用する各要素内で実行しようとしているスクリプトですsome-template。スクリプトは変更される可能性がありますが、元のバージョンを使用したいと思います。

0 投票する
1 に答える
427 参照

jquery - Knockout JS を使用して、テンプレート バインディングを使用して JavaScript コードを動的にレンダリングする方法

Knockout テンプレート バインディングを使用して動的に HTML フォームを作成しています。各フォーム定義には、カスタム検証に使用される独自の JavaScript 関数のセットがあります。

検証中に呼び出すことができるように、Java スクリプト コード (関数) をページにレンダリングするにはどうすればよいですか? JavaScript コードが動的に挿入される理由は、それらがユーザー定義であるためです。

最終結果は次のようになります。

カスタム検証で JavaScript 関数が 1 つしか使用されない場合、「問題ありません」- eval() コマンドを使用して実行できます。ただし、関数が別の関数を参照する必要がある場合、状況は少し複雑になります。ここには2つの問題があります:

  1. eval() コマンドは遅くて安全ではないため、使用しないでください。
  2. 関数が別の関数を参照する必要がある場合、 eval() オプションでさえ役に立ちません。

そこで、スクリプト タグ内ですべての JavaScript 関数を動的にレンダリングできれば、eval() コマンドを使用する代わりに [Window].[functionName] を使用して関数を参照できると考えました。

これらの JavaScript 関数がすべて 1 つの個別のファイルに配置されているわけではないことを強調しておきます。それらは、動的フォームのロードを駆動するフォーム定義を表す、サーバーによって構築された複雑な JSON オブジェクトに散らばっています。多くの異なるフォーム定義があります。

0 投票する
1 に答える
914 参照

javascript - Knockout.js ウィザードでラジオ ボタン オプションの値を取得するにはどうすればよいですか?

簡単にするために、ここにフィドルがあります:http://jsfiddle.net/FyuSD/157/

いくつか質問があると思います。ウィザードを作成していますが、ユーザーが選択したオプションに応じて異なる実行手順が必要です。私が知りたい質問は、彼らが選択したラジオボタンの値を取得するにはどうすればよいですか?

ステップ 2 のように、「以前に購入した製品を購入する」を選択した場合、別の質問にリダイレクトするにはどうすればよいですか: ガイドから注文を作成するか、以前の注文から注文を作成します (ラジオ ボタンを再度使用します)。

彼らが選択したものの値を取得する方法がわかりません。さらに、選択したオプションに応じて、どのように手順をスキップできますか? (例:ステップ2で「商品を探したい」を選択した場合、ステップ2からステップ4へ)

最後に、質問ごとに新しいテンプレートを作成せずに、質問に合わせてラジオボタンのテキストを変更する簡単な方法はありますか?

質問が多すぎて申し訳ありません。助けてくれてありがとう...

0 投票する
1 に答える
615 参照

javascript - ノックアウト コンポーネント テンプレートでビューモデル変数にアクセスするにはどうすればよいですか?

Knockout コンポーネント/テンプレートを使用して、指示ステップのリストを作成しようとしています。

UL には、 の単なるテンプレートであるステップのリスト (ノックアウト登録されたカスタム要素sidebar-step<li></li>を使用) が含まれます。class"data-customAttribute"などthis.testVarの属性を含む可能性のあるモデルの別の値の部分があります。<li>

私の質問は、自分の値をテンプレートにどのように含めることができるかということです。testVar次のような行を出力するようにします。

<sidebar-step class=*testVar* params="vm: sidebarStepModel">Message 1</sidebar-step>

フィドル: https://jsfiddle.net/uu4hzc41/1/

HTML:

JavaScript:

0 投票する
0 に答える
399 参照

knockout.js - ノックアウト外部テンプレート値のリセット

ノックアウト外部テンプレートを使用してい ます https://github.com/ifandelse/Knockout.js-External-Template-Engine

ただし、外部テンプレートから新しくバインドされた値とテキストをクリアする方法。私のhtmlコードはこのようなものです

HTML

スクリプト [追加] をクリックすると、'RegistrationForm.html' のフォーム値がグリッドにバインドされますが、同時に、'RegistrationForm.html' からすべてのバインド値をクリアする必要があります。選択したテンプレートに多くのフィールドといくつかのテキスト バインディングがあるとします。ボタンをクリックしたときにテンプレートからバインドテキストとフォーム値をクリアする方法についての私の質問です。

実際のシナリオ:

ユーザー テンプレートを開くと、対応するユーザーに関連する値とテキストがそのテンプレートにバインドされます。しかし、値を指定せずに次のユーザーをクリックすると、最初のユーザーの値がそのまま残ります。すべてのユーザーに 1 つのテンプレートを使用しています)

ありがとう

EDIT この構造のような私のコード

更新 概念を変更しました。ノックアウト外部テンプレートでテンプレートのキャッシュを無効にする方法を教えてください。これまで私は試しました:

機能しません。テンプレートを更新するだけです。ありがとう

0 投票する
1 に答える
144 参照

javascript - この Knockout.js Viewmodel 変数に HTML を追加するにはどうすればよいですか?

ページに表示されるステップのリストがあります。一部のステップ (すべてではない) には、1 ~ 3 のサブステップがあります。これを行う最も簡単な方法は、ビューモデルの各ステップ宣言内に HTML を手動で記述することだと考えていました。

以下のコードを見ると、私がやりたいことは次のようなものです。

問題は、そこに書かれた HTML が ではstringなく として解釈されることHTMLです。HTML を実際の HTML として解釈するようにするにはどうすればよいですか?

フィドル: https://jsfiddle.net/8o31m6rq/2/

HTML:

JavaScript/ノックアウト: