2

ノックアウトでは、次のようなカスタム要素を作成できます。

<flight-deals params='from: "lhr", to: "sfo"'></flight-deals>

HTML でのカスタム要素の定義はまだ進行中であり、今日これを使用するプロセスの一部は、.xml を使用してカスタム要素を DOM に登録することdocument.registerElementです。

ただし、これらの側面に関するノックアウトのドキュメントには何も見つかりません。カスタム要素がを呼び出した後にノックアウトによって DOM に登録されているかどうかを調べると、登録されていないことがわかりましたko.components.register

ノックアウトでカスタム要素を使用している場合、これらも手動で登録する必要がありdocument.registerElementますか? ノックアウトがまだこれを行っていないという事実は、私を少し混乱させます.

4

1 に答える 1

2

最新のブラウザーと IE9+ では、特別なことをする必要はありません。

IE6 から IE8 をサポートするには、これを認識して、ちょっとした魔法を使う必要があります。関連ドキュメントが言及しているように:

  • Internet Explorer 9以降を含む HTML5 時代のブラウザーでは、問題なくカスタム要素が自動的に許可されます。
  • Internet Explorer 6 から 8もカスタム要素をサポートしますが、HTML パーサーがこれらの要素に遭遇する前に登録されている場合に限ります。

IE 6-8 の HTML パーサーは、認識されていない要素を破棄します。カスタム要素が破棄されないようにするには、次のいずれかを実行する必要があります。

  • ko.components.register('your-component')HTML パーサーが<your-component>要素を確認する前に呼び出すようにしてください
  • または、少なくともdocument.createElement('your-component')HTML パーサーが<your-component>要素を認識する前に呼び出します。createElement 呼び出しの結果は無視できます — 重要なのは、それを呼び出したことだけです。
于 2016-01-27T12:52:38.570 に答える