EDITED:更清楚问题并修复下面代码中的一些拼写错误。用jquery更改输入值后输入更新ng-model
状况: 这只是一个演示中,我尝试在真实的项目中,实际上是一个从Web服务中获得的名称数组来完成一个例子,然后我找到这些投入名称,使用jQuery选择它们,然后设置它们的值(使用jQuery)。
问题: 我需要的是知道如何更新这些值的NG-模型使用jQuery
我尝试了这些
- Update Angular model after setting input value with jQuery ,我改变了自己的价值属性
- Angular model doesn't update when changing input programmatically
- Update HTML input value changes in angular ng-model
...但我没有运气与任何这些选项。
我使用angularJS V1.4.8和jQuery v1.11.1
我曾尝试输入类型设置为hidden
并键入text
与style: display:none
但我不能让它正常工作。
下面是我试图做的一个演示。这有一个输入和一个跨度绑定在同一个ng模型中,当你点击按钮时,假设通过jQuery改变输入值,然后更新ng模型。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
</head>
<body data-ng-app="app">
<div data-ng-controller="myCtrl as ctrl">
<span>Value: {{ctrl.myValue}}</span>
<input name="myId" type="hidden" data-ng-model="ctrl.myValue" />
<button data-ng-click="ctrl.changeValue('ValueChanged')">Change Value</button>
</div>
<script>
//my controller
angular.module('app', [])
.controller('myCtrl', function(){
var vm = this;
vm.wizard = {
changeValue: fnChangeValue
}
return vm.wizard;
function fnChangeValue(newValue){
var e = $('#myId');
e.val(newValue);
e.trigger('input'); //first option
//e.triggerHandler('change'); //second option
}
});
</script>
</body>
</html>
其实什么是你想怎么办? – Sajeetharan
输入ng-model:* ctrl.myValue ** 2 ***。范围:* ctrl.myValue *。 –
@Sajeetharan,谢谢你的回复。这只是一个演示,但我想要做的是:给出一个名称列表,使用这些名称查找输入,通过jQuery设置它们的'value',然后更新它们的ng-model。所有这些都是一个从REST服务中获取名称的函数。希望我使情况更清楚。任何帮助赞赏:) – lealceldeiro