2016-12-01 16 views
0

を使用して取り付けられたカスタム要素内で使用される場合foreachmyArrayをループしない(hereを発見した例に基づいて)カスタム要素をknockoutjs knockoutjsに動作していないと何も出力が生成されませんどんな助けも高く評価されます。 component-like-widget.htmlforeachのは、以下でrequirejs

<div data-bind="foreach: myArray" > 
     <a data-bind="text:$data.name">place holder2</a> 
    </div> 

フル例のcomponent-like-widget.js

define(['path_to_knockoutjs/knockout'], function(ko) { 
     function LikeWidgetViewModel(params) { 
      this.myArray= ko.observableArray([ 
       { name: "Bungle", type: "Bear" }, 
       { name: "George", type: "Hippo" }, 
       { name: "Zippy", type: "Unknown" }]); 
     } 

     return LikeWidgetViewModel; 
    }); 

内容の

内容は、値を返す必要はありません

+1

あなたはko.applybindingを呼び出しましたか? – jtabuloc

+0

確かに、私は完全な例のためにgitを追加しました。 – user2576266

+0

私はあなたのサンプルをjsfiddleに移しました。それはすべて動作します:https://jsfiddle.net/mbest/2sb6jhj9/ –

答えて

0

それを削除する問題は、ノックアウトの2つのインスタンスをロードしていることです。 1つのノックアウトインスタンスは、別のインスタンスで作成されたオブザーバブルを認識しません。独自のコンポーネントをロードする代わりに、グローバルkoを使用するようにコンポーネントを変更します。

define(function() { 
    function LikeWidgetViewModel(params) { 
.... 
+0

ありがとう、チャームのように働いた。ドキュメンテーションの例自体は、[here](http://knockoutjs.com/documentation/files/component-like-widget.js)と同じ問題があります。私を殺していたのは、通常の観測では観測可能な配列では機能しませんでした。 – user2576266

+0

この問題は、2番目のKnockoutインスタンスを使用してコンポーネントviewmodel内に作成されたすべてのオブザーバブルに影響します。あなたのコンポーネントが使用している他の観測値は渡されたので、この問題はありません。 –

+0

うまくいけば、ドキュメントを修正することができます。 https://github.com/knockout/knockout/issues/2164 –

0

hereを見つけることができます。 return LikeWidgetViewModel;

Here is a sample link

+0

はすべて、カスタム要素として使用するまで機能します。完全な例は元の投稿の一番下にリンクされています。 – user2576266