2017-01-09 71 views
2

我的问题是当我改变输入字段值使用JavaScript,它不会改变ngModel值。任何方式来改变输入字段使用javascript ngModal值

例如:

//html 
<input type="text" name="date" [(ngModel)]="date"> 

打字稿

var date : any; 
    constructor(
      // some code 
     ) { 
      this.date="10:10:2016"; 
     } 

当我的控制台 '日期',它会显示10:10 2016

执行这段JavaScript代码

document.getElementsByName("date")[0].value = "15:10:2016"; 

文本字段会改变其价值,但ngModel值不会改变

顺便说一下我使用jQuery日期选择器

+0

是横幅还是日期? – Searching

+0

date sorry我的错误 – Nandhu

回答

1

你需要使角知道,事情发生了转变触发元素上的输入事件。看看这里的答案:Change AngularJS input text value using javascript

+0

试过$('[name =“date”]')。 $( '[名称= “日期”]')KEYUP(); $( '[名称= “日期”]')。按键();; $( '[名称= “日期”]')模糊();但没有任何工作 – Nandhu

+0

尝试$('[name =“date”]')。trigger(“input”) –

+0

sry我也试过,但没有工作 – Nandhu

1

你需要ngAfterViewInit

ngAfterViewInit() { 
    let myNewDate= document.getElementsByName("date")[0].value = "15:10:2016";; 
    this.date = myNewDate; 
} 

执行JavaScript代码和分配价值,你的date变量。

+0

谢谢,这段代码工作正常。但我使用外部js(jquery)将值分配给输入字段,我想我找到了一个解决方案。 – Nandhu

+0

什么解决方案为你工作? :) – candidJ

+0

在ngView中使用jquery输入函数并将输入字段值的值赋给ngModel现在我无法访问我的电脑来测试此代码。测试后会发布解决方案:),你的回答帮助我解决了我的问题..谢谢 – Nandhu