0

ページが読み込まれたときにレンダリングされる次のコードがあります

<div id="results">
 <%= render :partial => results %>
</div>

結果の内容は次のとおりです。

<input type="text" ng-model="Myname" placeholder="Enter a name here">  
<h1>Hello {{Myname}} </h1>

バインディングは適切に行われ、完全に正常に機能します。

結果を部分的に置き換えるjQuery("#results")と、コンテンツは置き換えられますが、ディレクティブはコンパイルされず、バインディングも壊れます。

角度ディレクティブのコンパイルは、ページが最初にロードされたときに行われます。しかし、HTMLコンテンツを動的に変更すると、壊れます。誰かが私がここで間違っていることを理解するのを手伝ってくれますか?

4

1 に答える 1

1

そうです、コンパイルはページのロード時に行われます。または、角度がDOMで何かを変更するたびに(ngRepeatなどのディレクティブを介して)

DOMを手動で変更しているので、変更したDOM要素で$compileをトリガーするだけです。実行するだけ$compile(jQuery("#results"))で、バインディングが機能するはずです。詳しくはこちらをご覧ください

于 2012-12-04T10:18:07.130 に答える