使用jQuery值更新角度模型

使用jQuery值更新角度模型,jquery,angularjs,Jquery,Angularjs,您好,我有一个输入字段,它附在我的模型上,当用户手动输入时,会在更改时调用一个函数-这工作正常,模型会在控制台日志中按预期反映出来 <input type="text" class="rating" ng-model="review.Rating" ng-change="change()" /> 这在Firefox和Chrome中似乎很好,因为我在控制台日志中反映了模型,但是在IE中(我有11个-不确定旧浏览器),触发器输入似乎无法更新模型 希望您能提供帮助。更新答案: 我认为它不

您好,我有一个输入字段,它附在我的模型上,当用户手动输入时,会在更改时调用一个函数-这工作正常,模型会在控制台日志中按预期反映出来

<input type="text" class="rating" ng-model="review.Rating" ng-change="change()" />
这在Firefox和Chrome中似乎很好,因为我在控制台日志中反映了模型,但是在IE中(我有11个-不确定旧浏览器),触发器输入似乎无法更新模型

希望您能提供帮助。

更新答案:

我认为它不起作用,因为Angular可能没有意识到这种变化。更新模型或将函数添加到$scope内后,尝试调用$scope.$digest()。$apply(function(){$..})


不使用jQuery,只需在控制器中添加一个函数,将值分配给ng模型

e、 g


由于您正在Angular的上下文之外更新文本字段值,因此需要告诉Angular在
$scope
中重新加载更改。因此,如果您可以访问scope变量,则在通过jQuyery设置输入字段的值后,直接调用
$apply()

$scope.$apply();
但如果您无权访问
$scope
,则可以使用任何父元素或输入字段本身来获取范围:

假设您的HTML如下所示:

<div id="foo">
    <input type="text" class="rating" ng-model="review.Rating" ng-change="change()" />
</div>

尝试使用ng focus而不是ng change

谢谢您的快速回复。我遇到的问题是,第二个jQuery函数围绕页面做了更多的事情,其中之一就是更新模型中的review值。这就是为什么我在该函数中寻找一种更新模型的方法——看起来trigger应该(在chrome和firefox中也应该)更新模型,但在IE中没有。我会给你一些建议,看看我是否可以将函数的这一方面分离出来(OK:)。我认为它不起作用,因为Angular可能没有意识到这种变化。更新模型或将函数添加到$scope内后,尝试调用$scope.$digest()。$apply(function(){$..});
$scope.autoFill = function() {
    $scope.data.input = "Hello World!";
};
$scope.$apply();
<div id="foo">
    <input type="text" class="rating" ng-model="review.Rating" ng-change="change()" />
</div>
angular.element(document.querySelector("#foo")).scope().$apply();