使用jQuery设置输入值后更新Angular模型

米哈尔·J。

我有一个简单的场景:

输入元素,其值由jQuery的val()方法更改。

我试图用jQuery设置的值更新角度模型。我试图编写一个简单的指令,但是它没有满足我的要求。

这是指令:

var myApp = angular.module('myApp', []);
myApp.directive('testChange', function() {
    return function(scope, element, attrs) {        
        element.bind('change', function() {
            console.log('value changed');
        })
    }
})

这是jQuery部分:

$(function(){
    $('button').click(function(){
        $('input').val('xxx');
    })
})

和html:

<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        <input test-change ng-model="foo" />
        <span>{{foo}}</span>
    </div>
</div>

<button>clickme</button>

这是我尝试的小提琴:http :
//jsfiddle.net/U3pVM/743/

有人可以指出正确的方向吗?

w

ngModel侦听“ input”事件,因此要“修复”您的代码,需要在设置该值后触发该事件:

$('button').click(function(){
    var input = $('input');
    input.val('xxx');
    input.trigger('input'); // Use for Chrome/Firefox/Edge
    input.trigger('change'); // Use for Chrome/Firefox/Edge + IE11
});

有关此特定行为的解释,请查看我前一段时间给出的答案:“ AngularJS如何在内部捕获诸如'onclick','onchange'之类的事件?


不幸的是,这不是您遇到的唯一问题。正如其他评论所指出的那样,以jQuery为中心的方法是完全错误的。有关更多信息,请查看这篇文章:如果我有jQuery背景,如何“思考AngularJS”?)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Angular 6设置输入字段的值

使用JQuery eq设置附加输入的值

如何使用jQuery设置输入文本的值

如何使用jQuery设置输入字段的值

如果我使用javascript ex:使用setTimeout更新输入字段的值,为什么Angular JS输入模型值不会得到更新

通过使用模型设置值不会触发角度输入事件

如何设置使用v模型的值输入?-Laravel

输入值不使用jQuery更新

jQuery textarea输入值后将不会更新

Angular将指令与@HostListener一起使用以更新ReactiveForm的输入值会将输入设置为ngValid而不是ngInvalid

AngularJS中的Jquery $(this).val()等价的是什么?以及更新后输入字段为空时如何将输入字段值设置为零?

在 JQuery 中使用 AND 和 OR 选择选择单选按钮组合后,如何为输入字段设置不同的值?

使用Jquery设置复选框值的模型验证错误

使用jquery-chosen插件更新vuejs模型值

使用jQuery单击事件后,应更改输入按钮的值

如何使用angular 2动态设置输入范围值?

使用jQuery设置select2输入的值

使用 jQuery 设置输入值不起作用

jQuery使用.html()设置输入值属性不起作用

使用jQuery设置Bootstrap日期字段输入值

如何使用 jQuery 获取/设置输入字段的值?

基于使用jquery添加或删除div更新输入字段值

模型更改后Angular View不更新

基于其他输入值,通过 PHP 使用 jQuery AJAX 设置表单输入的值

使用部分视图从jQuery .dialog更新数据后更新视图模型

反应-提交后更新输入值

设置输入值后将列表拆分为多个小列表-jQuery

使用javascript设置输入值

服务器响应后,Angular2 更新 FormArray 的 FormGroup 内的输入值