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