角形罐';当被JavaScript更改时,不能通过[(ngModel)]获取输入值

角形罐';当被JavaScript更改时,不能通过[(ngModel)]获取输入值,javascript,jquery,angular,typescript,angular-directive,Javascript,Jquery,Angular,Typescript,Angular Directive,我已经创建了一个自定义输入formControl,因此我需要通过[(ngModel)]获取/设置其值: 我的问题是: 当我直接输入时,我可以通过[(ngModel)]获得插入值,但正如您所看到的,当jQuery函数填充输入值时,我无法通过[(ngModel)]获得填充值。 我知道这是因为即使我使用了 $(element).find('input[type="text"]').change(); 什么也没有发生。Angular无法知道在其区域之外发生的变化。这意味着你应该告诉

我已经创建了一个自定义输入
formControl
,因此我需要通过[(ngModel)]获取/设置其值:

我的问题是:

当我直接输入时,我可以通过
[(ngModel)]
获得插入值,但正如您所看到的,当jQuery函数填充输入值时,我无法通过
[(ngModel)]
获得填充值。 我知道这是因为即使我使用了

$(element).find('input[type="text"]').change();

什么也没有发生。

Angular无法知道在其区域之外发生的变化。这意味着你应该告诉你的Angular应用程序需要运行一个变化检测周期,看看是否有任何东西需要更新

在您的情况下,您应该初始化组件内的
时钟选择器
,并检测更改。请阅读更多关于太,这是有用的,以执行的东西,你以外的角度区

可能有用


谢谢,我也尝试过ChangeDetectorRef,但还是无法实现更改,从您的角度来看,我将ChangeDetection()称为何处?我认为在
完成后
中,或在colorpicker库调用更改时的特定方法中,但我认为您也应该与您的自定义控件沟通该更改。再次感谢亲爱的,让我阅读您的链接说明并重试。没问题。如果您遇到问题,请告诉我,如果您能找到解决方案,请随时在此处回复;)
$(document).ready(function () {
    $('.clockpicker').each(function (index, element) {
        $(element).clockpicker({
            afterDone: function () {
                $(element).find('input[type="text"]').change();
            }
        });
    });
});
$(element).find('input[type="text"]').change();