角度.js更新模型
angular.js Updating model
如果您尝试下面的jsfiddle链接,请在标有"标签名称"的文本框中键入内容,然后点击更新按钮。请注意控制台.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);
};
});
您错过了ParmAndValue
的关键SmsInputType
。现在每次更新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);
它为我更新了模型。我查看了代码,看起来不错。您确定不是在调试控制台中查看以前的对象而不是新对象吗?
相关文章:
- Angular没有根据模型更新我的选择元素
- 如何使 NgJsTree 应用模型更新
- 控制器内部的scope函数不根据视图中的ng模型更新值
- Angularjs模型更新延迟
- 模型更新时触发ng显示
- 在特定模型更新后,如何让keystoneJS运行函数
- 挖空JS未从视图模型更新
- 使用Spine.Model.Ajax,如何在模型更新时处理响应的JSON中的额外属性
- 模型更新后,AngularJS 视图未更新
- 角度函数在模型更新之前触发:邮政编码检查器
- 使用 AJAX 更新的模型更新 AngularJS 视图
- 角度指令内的回调在模型更新之前调用
- AngularJS 视图在模型更新后不会更新
- 带有硬编码选项的 AngularJS 多选不会在模型更新时更新
- 角度JS模型更新不起作用
- 角度视图未根据模型更新
- AngularJS-在控制器中使用模型导致模型更新
- Angularjs:当ng模型更新时,选择不更新
- 当使用Knockout's的foreach绑定,do事件会在视图模型更新时自动清理
- 通过ng模型更新不同的$scope对象属性