同梱可
●犬用のライフジャケット。非常にしっかりした作りでよく浮くので安心安全。
●材質:ナイロン他
●サイズ:45×46×3cm
●重量:550g
●着丈:43~61cm
●胴まわり:82~116cm
●首まわり下:50~74cm
●適応犬種:大型犬
沖縄・離島の送料は1,296円~   
1万円以上ご注文や送料無料商品をご注文の場合、北海道への送料は別途¥250加算します。   
2~7営業日で出荷致します。(欠品時除く)

 

☆EZYDOG イージードッグ DFDスタンダード L イエロー 新東亜交易 ▼g ペット グッズ 犬 ドッグ ライフジャケット

カスタムエレメント

カスタムエレメントは、あなたのビューに コンポーネント を注入する、便利な方法を提供します。

☆EZYDOG イージードッグ DFDスタンダード L イエロー 新東亜交易 ▼g ペット グッズ 犬 ドッグ ライフジャケット

カスタムエレメントは、component バインディング に対する構文上の代替手段です (そして実際には、カスタムエレメントは舞台裏で component バインディングを利用します)。

例えば、以下のように記述する代わりに:

<div data-bind='component: { name: "flight-deals", params: { from: "lhr", to: "sfo" } }'></div>

... このように記述することができます:

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

これによって、非常に古いブラウザのサポートを維持しながら

☆EZYDOG イージードッグ DFDスタンダード L イエロー 新東亜交易 ▼g ペット グッズ 犬 ドッグ ライフジャケット

Richell(リッチェル) ペット用 3WAYサークル 6面90H 小型犬~中型犬用 58851-2 ベージュ 犬の服 ミングルリバーシブルフードベスト MINGLE XLサイズ PUPPIA パピア,正規輸入品 フィンランド Hurtta社製(フルッタ) ライフジャケット XSサイズ(0-5kg) イエロー・930645.Camille【Charlotte's Dress(チャーロットドレス)】 正規輸入品 北欧 フィンランド Hurtta社製(フルッタ)  ドッグウェア アルティメット ウォーマー 背面丈約35cm用 ピンク・931035【送料無料】【メーカー直送:代金引換不可:同梱不可】【北海道・沖縄・離島は別途送料】,【送料無料】ブロッサムリュックキャリー ミニチュアダックス用【期間限定!最大ポイント10倍 10月31日23:59迄】[O01].リッチェル カスタムペットサークル 4面 120-120 入口付 ホワイト(1台)【送料無料】 アカナ パピーラージブリード 11.4kg 大型犬/子犬用 送料無料 犬 フード ドライ ドッグフード ペットフード 仔犬 ACANA Pet館 ペット館 【D】,孵卵器 たまぴょミニ RCOM MINI(鳥類専用孵卵器)お手軽モデル.オリジン パピー ラージ(5.9kg)【オリジン】【送料無料】[快適いぬ生活] 大洋EX6.5【ハサミ 鋏】【トリミング】【ペット カット トリミング】  【GB3120_mother】    (10003425)(10003425),LT-40Fジョーウェル セニングシザー左用【223212】【鋏】【トリミング】【ペット カット トリミング】   【 送料込 セレブ 】 (10001393)(10001393).Foolee(フーリー) L イエロー ネイチャーズロジック ナチュラルヴェニソンディナー 5kg,SIMPLY+ WOODEN GATE 木製ゲート シンプリーシールド スプリーム Sサイズ FWM02-S【送料無料】.リッチェル たためる3WAYペットケージ ブラウン 760 ( ペットグッズ ゲージ キャリーバッグ ケース ドライブボックス 布製 ドッグ いぬ ドライブ 中型犬 おりたたみ ) オーエフティー バリケンネル ダブルドア XS ■ペット用品 ケージ ハウス キャリー,キャリーバッグ 小型犬用 キャリーバック 猫用 キャリーケース ペット用 バスケット 愛犬用 ラタン 籐 アジアン 送料無料 通販 PA-2N 【ire】【smtb-f】.《スタンザ》ワンケージ Mサイズ [W800×D600×H600 (内寸W710×D480) 約12.4kg] ペットケージ ドックケージ ペット サークル 犬 犬用 木製 ハウス 室内 ケージ ゲージ 犬小屋 中型犬 小型犬 スライドドア 引戸 ルーバー お洒落 リビング 【MARS japan】シーザー 絹ささみ 白身魚・野菜入り 100g×96トレイ,ロイヤルカナンミディアム ステアライズド 12kg!犬用 オーブンベイクド /チキン大粒 5.6kg 成犬用ドライフード オーブンベークドトラディション OVEN-BAKED 正規品 Cocolino(コッコリーノ) プラート・ダーク ステージ ウォールナット (ペット仏壇 供養)(同梱不可),【アワーズ】トイレトレー Sサイズ ライトブルー ☆ペット用品 ※お取り寄せ商品【RCP】【02P03Dec16】.【 ヒルズ Hills】送料無料! r/d 500g×12 猫用 ドライフード【食事療法食】【特別療法食】【日本ヒルズ・コルゲート】まとめ買いがお得! ヒルズ 犬用 c/d シーディー マルチケア ドライ 小粒 7.5kg [日本ヒルズ・コルゲート]◆送料無料(一部地域を除く)◆[P2],【送料無料】CKD [低Na- リン- プロテイン] (犬用)2.5kg 1ケース4袋.犬用 森乳サンワールド クリニカルダイエット 脂質マネジメント 9.6kg 箱売り マナーおむつ ビッグパック SSS 36枚 1箱6袋入 おもらし ペット 沖縄別途送料【HLS_DU】 関東当日便,【並行輸入品】ブルー センシティブ ストマック チキン&ブラウンライス レシピ アダルト キャット(成猫用) 6.8kg.クプレラ べニソン&スイートポテト パピーフード 9.08kg 子犬用ドッグフード CUPURERA 【正規品】,天然籐製キャットハウス/猫ハウス 【ちぐらタイプ】 クッションシート/持ち手付き カバーのみ手洗い可【代引不可】(同梱不可) 送料別 【取り寄せ】 ferplast(ファープラスト) 猫用爪とぎおもちゃ MAGIC TOWER(マジックタワー) 85100600.キャットロボットOA 全自動猫トイレ お買得トイレスターターセット 1年保障付(1セット)【送料無料】[爽快ペットストア]!【ジェックス】メガパワー9012 クラマタ産業 バイオレット交換球(散光).安永電磁式エアーポンプ(ブロワー) AP-60F(省エネ型)+塩ビパイプ 一方コック付き 吐出口10 両側キャップ付き 沖縄別途送料 関東当日便,正規輸入品 ペッツストップ(Pets Stop) フードスタンド ボーンダブルダイナー ブラック S RDB3S-BONE【取寄せ※ご注文後7~10営業日後出荷】(pnt2) ゼブロ ディスペンサー WM300(1コ入)[シリアル フード 保存 容器]【送料無料】[ペットランド].【送料無料】 【1ケース納品】 アース 薬用マダニ・ノミとり リンスインシャンプー 犬猫用 350mL×24個入 ★税抜5000円以上で送料無料★激安祭,【350円OFFクーポン配布中】キンペックス SP-2 アロエシャンプー 4L【送料無料】【犬用品/猫用品/ペットグッズ/ペット用品】 イブサンベルナルド 犬用シャンプー ピュリファイングシャンプー 5000ml 903 【割引不可・取り寄せ品、返品キャンセル不可】.【わんにゃんDAY】 10/12 10:00~10/19 09:59 フィッシュ4ドッグ スーペリア ウェイトコントロール6kg(リニューアル済)(ドッグ ドック ペット フード ごはん おすすめ 犬用品 大袋 メタボ 体重管理 減量 フィッシュ),【送料無料】 YARRAH(ヤラー) グレインフリー 10kg【TC】[食物アレルギーに配慮][犬 いぬ イヌ ドッグ フード ごはん ドライ オーガニック アダルト 成犬][イシイ] Pet館 ペット館 イタリア【ファープラスト】ferplast社製 アトラスカー ミニ【smtb-k】【w3】.【送料無料】SIMPLY+ WOODEN GATE 木製ゲート シンプリーシールド ラグジュアリー 2パネル(ドアなし) FWW-2Panels【同梱・代引き不可】,パピーコング ビンキー ベビーブルー ≪おまとめセット【6個】≫テレビで紹介 雑誌掲載 おしゃれ かわいい いぬのきもち ねこのきもち 日本製 セレブスタイル 高品質ペットウェア 犬服の着物桜舞妓帯赤  XS/S/M/MD-M/L 【5点】sachi『FS』.ハッピーアース パナズー ジェルシャンプー 4L E219852H【納期目安:1週間】,メーカー直送 ゼンスイ ZRC-400B 対応水量2000リットル メーカー保証期間1年 松阪製作所 水中曝気機 サンタB2-25型 BC 50Hz送料無料 代引不可【♭】.ペットキャリー 防災 【Pet Field ポップキャリー 3WAY リュック型 ペットキャリー PT60】 [送料無料・代引料無料] ペットキャリー 車載 猫用 キャリー おしゃれ リュック 小型犬![リッチェル]Richell ペットと一緒にスタイリッシュにお出かけ!段階調節機能付きハンドル ペットカート クレオ 体重目安20kgまで 4715243343178 #w-150794-00-00 【ふるさと納税】B43-2 ワンちゃんのおやつ170本入り.【正規品】【送料無料】森乳サンワールドワンラック お気にいりミルクビスケット 180g×24(s7810014),シンシア キティハウス SC-17 ロイヤルカナン ベッツプラン メールケア 500g×12.三晃 ワイルドホーム フェレット【RCP】,三晃商会 SANKO ハリネズミのおうちセット ケージ 床材 ハウス 沖縄別途送料【HLS_DU】 関東当日便 Simmons シモンズ ビューティーレスト ペット ベッド マットレス カドラー ソファ 洗える.accu milia(アキュミリア) New 2Wayトートキャリーバッグシリーズ ピンク×本革(牛革)(S)【小型犬 犬用 ペット キャリーバッグ セレブ/ 送料無料】,【送料無料】【飛行機/新幹線/車両】ソフトケンネル ベージュ 62 【送料無料】  涼感プレート  ピュアホワイト  幸福の四つ葉のクローバー 80×80cmワイドサイズ 大型犬も楽々 冷感 涼感 快眠 安眠   ペット・ペットグッズ 犬用品・犬 ベット・マット マット・プレート 大型犬  【_名入れ】.Fuzz Yard ファズヤード リバーシブルベッド M,【航空機輸送用キャリー】米国ドスコシル社製 バリケンネル カラータイプ P-200 (520×710×H520) ☆ワンワンデー限定送料無料☆ペットパラダイス ディズニートイ・ストーリー ソファベッド.天使のカート シャンアンジェ BLACK DENIM ブラックデニム620(L)(バッグのみ)【小型犬 キャリーバッグ/ キャリーカート/ ペットカート/ ペットバギー/犬用品/ 送料無料】,ホリスティックレセピー ベジタリアン1歳から 18.1kg / パーパス HoLiStic RECIPE / JAN:4516950001135 / 犬 ドッグフード 犬用 いぬ イヌ DOg #w-140384-00-00 【送料無料】テトラ RG-60VLE 【水槽用品】 【ペット用品】.




2018-01-16

、とても現代的なWebComponents 的な方法で、コードを構成することができます( カスタムエレメントとInternet Explorer 6 ~ 8 を参照してください)。

実行例

こちらの例ではコンポーネントを宣言してから、ビューにその2つのインスタンスを注入します。下記のソースコードを参照してください。

First instance, without parameters

Second instance, passing parameters

ソースコード: ビュー
<h4>First instance, without parameters</h4>
<message-editor></message-editor>
<h4>Second instance, passing parameters</h4>
<message-editor params='initialText: "Hello, world!"'></message-editor>
ソースコード: ビューモデル
ko.components.register('message-editor', {
 viewModel: function(params) {
 this.text = ko.observable(params.initialText || '');
 },
 template: 'Message: <input data-bind="value: text" /> '
 + '(length: <span data-bind="text: text().length"></span>)'
});
ko.applyBindings();

注: より現実的なケースでは、通常、登録時にコンポーネントのビューモデルとテンプレートをハードコーディングする代わりに、外部ファイルからそれらをロードするでしょう。 実行例 と、登録についてのドキュメント を参照してください。

パラメータの受け渡し

上記の例で見てきたように、コンポーネントのビューモデルにパラメータを供給するため、 params 属性を使用することができます。 params 属性の内容はJavaScriptのオブジェクトリテラルとして解釈され( data-bind 属性と同様です)、任意の型でどのような値でも渡すことができます。例えば:

<unrealistic-component
 params='stringValue: "hello",
 numericValue: 123,
 boolValue: true,
 objectValue: { a: 1, b: 2 },
 dateValue: new Date(),
 someModelProperty: myModelValue,
 observableSubproperty: someObservable().subprop'>
</unrealistic-component>

コンポーネントの親子間の通信

もし 、あなたが params 属性内でモデルのプロパティを参照する場合、コンポーネント自体がまだインスタンス化されていないので、もちろんコンポーネント外のビューモデル('親' または 'ホスト' のビューモデル)上のプロパティを参照しています。上記の例では、 myModelValue は親のビューモデルのプロパティになり、そして子コンポーネントのビューモデルのコンストラクタで params.someModelProperty のよう受け取ることになります。

これが、子コンポーネントに親のビューモデルからプロパティを渡すことができる方法です。プロパティがそれ自体observableである場合には、親のビューモデルはそのプロパティを観察し ウサギのゆったり!のびのび!ひろ~いケージ【小動物 ケージ ドギー ドギーマン】、子コンポーネントによって挿入された新しい値に反応することができるようになります。

observable な式を渡す

以下の例では、

<some-component
 params='simpleExpression: 1 + 1,
 simpleObservable: myObservable,
 observableExpression: myObservable() + 1'>
</some-component>

...コンポーネントのビューモデルにある params パラメータは3つの値を含みます。

  • simpleExpression

    • これは数値の 2 のような類です。observable または computed な値ではなく、observable と関連しません。

      一般的に、パラメータの評価がobservable の評価を伴わない場合(この場合、値は全くobservableを伴いません)、値はリテラルとして渡されます。もし値がobject であった場合、子のコンポーネントはそれを変化させることができますが、それがobservableではないため、親のコンポーネントは子がそれを行ったことを知ることができません。

  • simpleObservable

    • これは、親のビューモデルで定義された myObservable のような、 ko.observable インスタンスです。これはラッパーではありません - 実際に親で参照されているものと同じインスタンスです。したがって、もし子のビューモデルがこのobservable に書き込むと、親のビューモデルはその変更を受け取ります。

    一般的に、もしパラメータの評価がobservable の評価を伴わない場合(この場合、observable は単に評価されずに渡されます)、値はリテラルとして渡されます。

  • observableExpression

    • これはトリッキーです。式自体は、評価されたときに、observableを読み込みます。そのobservableな値は、時間の経過とともに変化する可能性があるため、式の結果も、時間の経過とともに変化できます。

    子コンポーネントが式の値の変化に反応できることを保証するため、Knockoutは、 自動的にこのパラメータをcomputed プロパティにアップグレードします 。従って、子コンポーネントは params.observableExpression() を読むことで現在の値を取得することができ、または params.observableExpression.subscribe(...) 等が使用できます。

    一般的に、カスタムエレメントにおいて、パラメータの評価が observable の評価を伴う場合、knockout は自動的に、与えられた式の結果として ko.computed の値を作成し、コンポーネントに供給します。

要約すると、一般的なルールは次のようになります:

  1. もしパラメータの評価がobservable/computed の評価を 伴わない 場合、それはリテラルとして渡されます。
  2. もし、パラメータの評価が 1つまたは複数の observable/computed の評価を 伴う 場合、それは computed プロパティとして渡され、パラメータ値の変化に反応させることができます。

コンポーネントにマークアップを渡す

時には、マークアップを受信し、出力の一部としてそれを使用するコンポーネントを作成したいことがあるでしょう。例えば システムサークルトレー付きスライドドア STS-600TN ミルキーブルー/4905009984367/アイリスオーヤマ、グリッド、リスト、ダイアログ、、またはタブセットのような、それ自身の内部で任意のマークアップをバインドする "コンテナ" UIエレメントを構築したい場合などです。

以下のように呼び出すことのできる、特殊なリストコンポーネントについて考えてみましょう:

<my-special-list params="items: someArrayOfPeople">
 <!-- Look, I'm putting markup inside a custom element -->
 The person <em data-bind="text: name"></em>
 is <em data-bind="text: age"></em> years old.
</my-special-list>

デフォルトでは、 <my-special-list> 内部のDOMノードは(いかなるビューモデルにもバインドされずに)取り除かれ、コンポーネントの出力に置き換えられます。 しかし、それらのDOMノードは失われません: それは記憶され、コンポーネントに二つの方法で供給されます。

  • $componentTemplateNodes の配列として、コンポーネントのテンプレート内においてなんらかのバインド式に対して(つまり、 バインディングコンテキスト のプロパティとして)使用できます。通常これは供給されたマークアップを使用するもっとも便利な方法です。以下の例を参照してください。

  • componentInfo.templateNodes の配列として、その createViewModel関数 に渡されます。

コンポーネントは供給されたDOMノードを、コンポーネントのテンプレート内のなんらかの要素に対して、 template: { nodes: $componentTemplateNodes } のように使用することで、希望する出力の一部として使用するように選択することができます。

例えば、 my-special-list コンポーネントのテンプレートは $componentTemplateNodes を参照することができ、その出力は供給されたマークアップを含むことがdけいます。以下が、完全な動作例です。

The person is years old.
ソースコード: ビュー
<!-- This could be in a separate file -->
<template>
 <h3>Here is a special list</h3>
 <ul data-bind="foreach: { data: myItems, as: 'myItem' }">
 <li>
 <h4>Here is another one of my special items</h4>
 <!-- ko template: { nodes: $componentTemplateNodes, data: myItem } --><!-- /ko -->
 </li>
 </ul>
</template>
<my-special-list params="items: someArrayOfPeople">
 <!-- Look, I'm putting markup inside a custom element -->
 The person <em data-bind="text: name"></em>
 is <em data-bind="text: age"></em> years old.
</my-special-list>
ソースコード: ビューモデル
ko.components.register('my-special-list', {
 template: { element: 'my-special-list-template' },
 viewModel: function(params) {
 this.myItems = params.items;
 }
});
ko.applyBindings({
 someArrayOfPeople: ko.observableArray([
 { name: 'Lewis', age: 56 },
 { name: 'Hathaway', age: 34 }
 ])
});

この "特殊なリスト"の例は 、それぞれのリスト項目上にヘッダを挿入する以上のことはしません。しかし、同様のテクニックを 正規輸入品 北欧 フィンランド Hurtta社製(フルッタ) トレイルパック M 932360(犬用バックパック)【取寄品・メーカー直送、ギフト包装・期日指定・返品不可】【注意:欠品の場合、納品遅れやキャンセルが発生します。】、洗練されたグリッド、ダイアログ、タブセットやその類に使用することができ、このようなUIエレメント全てに必要とされるのは、供給されたマークアップによって囲われた共通のUIマークアップ(例えば リッチェル ペット用サークル お掃除簡単サークル 超小型犬・小型犬用 グリーン 【割引不可・取り寄せ品、返品キャンセル不可】、グリッドの定義やダイアログのヘッダと枠線など)です。

このテクニックはまた、例えば、 []component バインディングを直接使用する際にマークアップを渡す場合](./component-binding#note-passing-markup-to-components) など、カスタムエレメントなしでコンポーネントを使用するためにも使用できます。

カスタムエレメントのタグ名を制御する

デフォルトでは、Knockout はあなたのカスタムエレメントのタグ名が 5071620 ペットプロ 耳そうじシート 32枚入×50個  【ab-1026487】【送料無料】、ko.components.register によって登録されたコンポーネント名と正確に対応していることを前提としています。この"設定より規約" 戦略は、ほとんどのアプリケーションに最適です。

もし、あなたが異なるカスタムエレメントのタグ名を使用したい場合、それを制御するために getComponentNameForNode をオーバーライドすることができます。例えば、

ko.components.getComponentNameForNode = function(node) {
 var tagNameLower = node.tagName && node.tagName.toLowerCase();
 if (ko.components.isRegistered(tagNameLower)) {
 // If the element's name exactly matches a preregistered
 // component, use that component
 return tagNameLower;
 } else if (tagNameLower === "special-element") {
 // For the element <special-element>, use the component
 // "MySpecialComponent" (whether or not it was preregistered)
 return "MySpecialComponent";
 } else {
 // Treat anything else as not representing a component
 return null;
 }
}

あなたはこのテクニックを例えば、登録されたコンポーネントのサブセットを制御して、、カスタムエレメントとして使用したい場合などに使用できます。

カスタムエレメントの登録

もし、あなたがデフォルトのコンポーネントローダを使用しており、それ故に ko.components.register を使用してあなたのコンポーネントを登録している場合、あなたはそれ以上何かを行う必要はありません。この方法で登録されたコンポーネントは、直ちにカスタムエレメントとして使用することができます。

もし、あなたが カスタムコンポーネントローダ を実装しており、それが ko.components.register を使用していない場合、カスタムエレメントとして使用したいエレメント名をKnockout に伝える必要があります。これを行うためには、単に ko.components.register を呼び出します - あなたのカスタムコンポーネントローダがそれを全く使用しないため、あなたは呼び出しで特になんらかの設定を行う必要はありません。例えば、

ko.components.register('my-custom-element', { /* No config needed */ });

他の方法としては、getComponentNameForNode をオーバーライド して、事前の登録とは独立した形で、動的にコンポーネント名とエレメントのマッピングを制御することができます。

注: 通常のバインディングとカスタムエレメントを組み合わせる

カスタムエレメントは、もし必要であれば通常の data-bind 属性 (加えてなんらかの params 属性)を持つことができます。例えば、

<products-list params='category: chosenCategory'
 data-bind='visible: shouldShowProducts'>
</products-list>

しかしながら、例えば texttemplate バインディングのような要素の内容を修正するバインディングを使用しても、それはコンポーネントによって注入されたテンプレートを上書きするので、あまり意味がありません。

Knockout は アドミラル イノマー ハイ 2 スニーカー メンズ レディース ハイカット シューズ 靴 ホワイト トリコロール ブラック 白 黒 男性 女性 Admiral INOMER HI II 送料無料、ビューモデルと注入されたテンプレートをバインドする際にコンポーネントと衝突してしまうため、controlsDescendantBindings を使用している全てのバインディングの使用を妨害します。従って、もしあなたが ifforeach のような制御フローバインディングを使用したい場合、カスタムエレメント上で直接使用する代わりに、カスタムエレメントの周りを囲う形で使用する必要があります。例えば:

<!-- ko if: someCondition -->
 <products-list></products-list>
<!-- /ko -->

または:

<ul data-bind='foreach: allProducts'>
 <product-details params='product: $data'></product-details>
</ul>

注: カスタムエレメントは自己完結できない

あなたは <my-custom-element /> ではなく<my-custom-element></my-custom-element> のように記述する必要があります。さもないと、カスタムエレメントは閉じられたとみなされず、それ以下の要素が子要素として処理されるでしょう。

これはHTML 仕様上の制限であり、Knockout が制御できるスコープの範囲外です。HTML仕様に準拠しているHTMLパーサは、 自己完結したスラッシュを無視します (パーサにハードコーディングされている、少数の特別な"仕様外の要素" を除きます)。HTMLはXMLと同じではありません。

注: カスタムエレメントとInternet Explorer 6 ~ 8

Knockout は 特に古いブラウザに関連するクロスブラウザの互換性について、開発者がこの問題を扱う痛みを和らげることに挑戦しています。カスタムエレメントはWeb開発のとても現代的なスタイルを提供するだけでなく、一般的に遭遇する全てのブラウザ上で動作します。

  • Internet Explorer9 およびそれ以降を含む、HTML5時代のブラウザでは何ら難しいことなく自動的にカスタムエレメントが許可されます。

  • Internet Explorer 6 ~ 8 もまたカスタムエレメントをサポートしますが adidas SKATEBOARDING アディダス スケートボーディング スニーカー ローカット BY4535 MATCHCOURT X HELAS マッチコート メンズスニーカー 靴 男性用 【】【火曜日発送不可】、しかしそれはHTMLパーサがそれらのエレメントのいずれかに遭遇する以前に登録されていることが条件です。

IE 6-8 のHTMLパーサは、認識できない要素は全て破棄します。あなたのカスタムエレメントが放り出されないようにするためには、以下のいずれかを行う必要があります。

  • ko.components.register('your-component') の呼び出しを、HTMLパーサが <your-component> エレメントのいずれかに出会う前に、確実に行うようにします。

  • または 【15周年クーポン対象外】【送料無料】カスタムコンバースキャンバスオールスター◆ハイカットスニーカー(赤/白スター)◆レディース【日本製】、少なくとも document.createElement('your-component') の呼び出しを、HTMLパーサが <your-component> エレメントのいずれかに出会う前に行うようにします。あなたは createElement 呼び出しの結果について無視することができます - 必要なのは、あなたがそれを呼び出すことです。

例えば、あなたがページを以下のように構成している場合、全てが上手くいきます:

<!DOCTYPE html>
<html>
 <body>
 <script src='some-script-that-registers-components.js'></script>
 <my-custom-element></my-custom-element>
 </body>
</html>

もし、あなたが AMDを使用している場合、 以下のような構成がよいでしょう:

<!DOCTYPE html>
<html>
 <body>
 <script>
 // Since the components aren't registered until the AMD module
 // loads, which is asynchronous, the following prevents IE6-8's
 // parser from discarding the custom element
 document.createElement('my-custom-element');
 </script>
 <script src='require.js' data-main='app/startup'></script>
 <my-custom-element></my-custom-element>
 </body>
</html>

または、もしあなたが document.createElement 呼び出しのハックを好まない場合、カスタムエレメントの代わりに トップレベルのコンポーネントに対する component バインディング を使用することができます。 他のコンポーネントが ko.applyBindings 呼び出しの前に登録されている限り、それらは IE6-8 上で問題を起こすことなく、カスタムエレメントとして使用できます。

<!DOCTYPE html>
<html>
 <body>
 <!-- The startup module registers all other KO components before calling
 ko.applyBindings(), so they are OK as custom elements on IE6-8 -->
 <script src='require.js' data-main='app/startup'></script>
 <div data-bind='component: "my-custom-element"'></div>
 </body>
</html>

上級: $raw パラメータへのアクセス

以下のように、 useObservable1observable1 、そして observable2 の全てが observable であるような、特殊な場合について考えてみましょう:

<some-component
 params='myExpr: useObservable1() ? observable1 : observable2'>
</some-component>

myExpr の評価がobservable の読出しを伴うため( useObservable1 )、KO はパラメータを computed プロパティとしてコンポーネントに供給します。

しかしながら、 computed プロパティの値はそれ自体が observable です。これは二重のアンラッピングを伴うことになり、厄介なシナリオにつながるように思われます(例えば、 params.myExpr()() 、ここでは最初の括弧で式の値を取得し、二番目のかっこではobservable インスタンスの結果の値を取得します)。

二重のアンラッピングは醜く不便であり、予想外であるため TEVA M HURRICANE VOLT(テバ メンズ ハリケーン ボルト)NAVY【メンズ サンダル】17SS-I、Knockout は自動的にcomputed プロパティがアンラップされた値 ( params.myExpr ) として生成されるようセットアップして渡します。つまり、コンポーネントは二重のアンラッピングを必要とせず、どちらのobservable が選択されていても( observable1 または observable2 )、 params.myExpr() の値を読み取ることができます。

万が一、あなたが自動アンラッピングを望んでおらず、 observable1 / observable2 インスタンスに直接アクセスしたい場合、 params.$raw から値を読み取ることができます。例えば、

function MyComponentViewModel(params) {
 var currentObservableInstance = params.$raw.myExpr();
 // Now currentObservableInstance is either observable1 or observable2
 // and you would read its value with "currentObservableInstance()"
}

これはかなり特殊なシナリオであるべきですので 【SHEPHERD シェパード】シープスキン ショートブーツ 本革 ムートンブーツ 羊毛【S2411】【2017】【2-3営業日以内に発送】【】 【送料無料】【02P05Nov16】、

、、通常はあなたが $raw を扱う必要はないでしょう。

原文はこちら

side menu
{yahoojp}nc02-zzp04-wl-zd-3486