2016-06-11 6 views
0
私の問題は、以下のplnkrで実証されて

AngularJsは、機能と分離されたスコープをコンパイルディレクティブ

Plnkr

<ntimes repeat=10 > 
     <h1>Hello World - 10 {{smsg}}</h1> 
     <h4>More text</h4> 
    </ntimes> 

指令:

directive('ntimes', function() { 
return { 
    restrict: 'E', 
    scope:{ 
     smsg: '=' 
    }, 
    compile: function(tElement, attrs) { 
     var content = tElement.children(); 
     for (var i = 0; i < attrs.repeat - 1; i++) { 
      tElement.append(content.clone()); 
     } 
     tElement.replaceWith(tElement.children()); 

     return function(scope,elem,attr){ 
      scope.smsg='abc'; 
     } 
    } 
} 
}) 

私はリンク機能を返すコンパイル機能を持​​っており、ディレクティブスコープが分離されます。リンク関数のスコープ変数を更新すると、ページは更新された値をレンダリングしません。私はxyzの代わりにabcを見ることを期待しています。双方向のデータバインディングを使用する場合

あなたは変数が正しく接続されていることを確認する必要があり

答えて

0

を助けてください。

これは、smsgスコープ変数がDOMで宣言される他のものと双方向データバインドされることを宣言することを意味します。

は今、DOM、この「リンク」を見れば、これはあなたがこの <ntimes smsg="smsg" repeat=10 >

にあなたのhtmlを変更する必要があり、それを修正error.To提供する欠落であり、あなたがそうするとき、あなたの新しいSMSGは「ABCと同じになります'

関連する問題