[英]angular.js Updating model
如果您嘗試下面的jsfiddle鏈接,請在標有“標記名稱”的文本框中鍵入內容,然后單擊“更新”按鈕。 請注意,console.log> ParmAndValue.Value設置為您鍵入的值,符合預期。 但是現在輸入其他內容,然后再次點擊更新。 這次是不是更新了模型? 怎么會?
https://jsfiddle.net/8evuoqLz/11/
<body ng-app="eApp">
<div id="sms" ng-controller="smsController" ng-cloak>
<ul id="paramsList" class="ulDynamic">
<li ng-repeat="actionParam in actions.SmsResponseActionParmAndValue" id="li_{{actionParam.Order}}">
<div ng-repeat="param in actionParam.ParmAndValue">
<label ng-bind="param.ParmName"></label>
<input ng-model="param.Value" type="{{param.SmsInputType}}" />
</div>
</li>
</ul>
<br>
javascript
var app = angular.module('eApp', []);
app.controller('smsController', function ($scope) {
$scope.actions = {"SmsResponseActionParmAndValue":[{"Description":"Tag User","Order":null,"ParmAndValue":[{"ParmId":9,"ParmName":"Tag Name","ParmType":"String","ParmVersion":"","Value":"","ValueId":null,"ValueVersion":"","ExtensionData":{},"Id":null,"Version":null}],"ExtensionData":{},"Id":10,"Version":"AAAAAAp96lg="}],"ExtensionData":{},"Id":null,"Version":null};
$scope.updateDetails = function () {
console.log("update");
console.log($scope.actions.SmsResponseActionParmAndValue);
};
});
您錯過了SmsInputType
的鍵ParmAndValue
。 現在,每次更新Value
時。
"ParmAndValue": [{
"ParmId": 9,
"ParmName": "Tag Name",
"ParmType": "String",
"ParmVersion": "",
"Value": "",
"ValueId": null,
"ValueVersion": "",
"ExtensionData": {},
"Id": null,
"Version": null,
"SmsInputType": "text" //<---- This one
}],
這是完整的代碼:
var app = angular.module('eApp', []);
//Controller
app.controller('smsController', function($scope) {
$scope.actions = {
"SmsResponseActionParmAndValue": [{
"Description": "Tag User",
"Order": null,
"ParmAndValue": [{
"ParmId": 9,
"ParmName": "Tag Name",
"ParmType": "String",
"ParmVersion": "",
"Value": "",
"ValueId": null,
"ValueVersion": "",
"ExtensionData": {},
"Id": null,
"Version": null,
"SmsInputType": "text"
}],
"ExtensionData": {},
"Id": 10,
"Version": "AAAAAAp96lg="
}],
"ExtensionData": {},
"Id": null,
"Version": null
};
$scope.updateDetails = function() {
console.log("update");
console.log($scope.actions.SmsResponseActionParmAndValue[0].ParmAndValue[0].Value);
console.log($scope.actions.SmsResponseActionParmAndValue);
};
});
它也對我有效。
您的帖子的可能原因:
1)您瀏覽器的行為異常。
2)在“混亂”結構中查看錯誤的數據。
console.log($scope.actions.SmsResponseActionParmAndValue[0].ParmAndValue[0].Value);
它為我更新了模型。 我檢查了代碼,看起來不錯。 您確定不是在調試控制台中查看上一個對象,而是查看新對象嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.