0

我想将一个文本框绑定到一个 angularjs 变量,并让它在单独的 div 中输出呈现的 html。我还想用 jquery 管理该 div 中的数据。当我使用 jquery 更新时,绑定的 angularjs 不会更新。

我有:

$('#sections, #phases').change(
...
$('textarea#displayData').val(html);

这行得通。当部分或阶段发生变化时,displayData 会更新。

<div ng-app="myapp">
<form:textarea ng-model="ddata" id="displayData" path="displayData"/>

<div ng-bind-html-unsafe='ddata'>
{{ddata}}
</div></div>

这也有效。当我在文本区域中修改 displayData 时,绑定的 ddata 变量会显示我的更改。

不会发生的情况是,当部分或阶段发生变化并且 displayData 得到更新时,ddata 不会反映该变化。

4

1 回答 1

4

如果您希望angular world了解在 angular world 之外所做的更改,则必须使用scope.$apply()进行更改

//jQuery world
$(function() {
    var scope = angular.element("textarea#displayData").scope();
    scope.$apply(function(){
        // angular world
        scope.ddata = html;
    });
});

在此处查看一个工作示例:http: //plnkr.co/edit/YnXZQm78M9nMqd9uOURz ?p=preview

于 2013-07-23T17:13:42.663 回答