7

我已经看到很多关于此的问题,所有这些问题似乎都可以通过调用$scope.$apply()$scope.$digest()或触发输入上的 change() 方法来解决。但我似乎无法让它与任何这些方法一起工作。在这个小提琴中,我可以在框中键入一个名称,并在我键入时获取要更新的模型值。但是当我单击链接时,要将输入名称设置为某个值,我希望更新模型名称。我需要做什么?

我尝试这样做的原因是我希望能够在用户使用浏览器自动填充或 LastPass 或类似工具自动填充表单时刷新我的角度模型。当然有一些角度命令可以从 DOM 刷新模型?

http://jsfiddle.net/PXCUq/

$(function () {
    $('#setFirstName').click(function () {
        $('input.firstname').val('Test Name');
        angular.element($('input.firstname')[0]).scope().$apply();
        // Model still not updated
    });
});
4

1 回答 1

6

获取范围,然后更改 ng-model 属性:

$('#setFirstName').click(function() {
    var scope = angular.element($('input').get(0)).scope()
    scope.firstname = 'Test Name';
    scope.$apply();
});

你可以想出一个更好的 jQuery 选择器。我只关注 Angular 部分。

小提琴

于 2013-02-06T22:40:27.393 回答