来自dom的Angular JS更新模型

Jer*_*rne 7 dom angularjs

我已经看到了很多关于这个的问题,所有这些问题似乎都可以通过调用$ 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
    });
});
Run Code Online (Sandbox Code Playgroud)

Mar*_*cok 6

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

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

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

小提琴.