我正在使用离子框架来构建应用程序。在我的表单中,我需要重新填充动态ng模型输入字段。我引用“How to create Dynamic ng-model in Angular”来创建动态ng-model字段。有用。但是,当我试图重新填充该字段时,它无法正常工作(我需要执行CRUD操作)。
我的HTML部分是:
Integer.parseInt("42")
我的控制器是这样的
<div class="row header">
<div class="col col-40">Name</div>
<div class="col col-60">Marks</div>
</div>
<div class="row" ng-repeat="(key, user) in userList">
<div class="col col-40" ng-bind="user.name"></div>
<div class="col col-60">
<input type="text" name="actual_marks" ng-model="markscardData.actual_marks[user.user_id]" placeholder="Please enter the marks" />
</div>
</div>
$ scope.userList中的JSON值,如此
.controller('MarkscardAddCtrl', function($scope, $stateParams, $state, $http, $ionicPopup, baseUrl)
{
$scope.markscardData = {};
$http.get(baseUrl+"api_method=markscard.getUserList&api_version=1.0&app_key=12345& course_id="+course+"&subject_id="+subject+"& markscard_id="+markscard).then(function(response){
$scope.userList = response.data.responseMsg;
});
})
我需要markscardData.actual_marks [user.user_id]在编辑模式下打开表单时重新填充,它也允许更新。请帮帮我。提前致谢。
答案 0 :(得分:1)
我假设您在重新加载页面时丢失了数据。发生这种情况是因为动态ng模型实际上并未绑定在控制器中。 如果要从收到的JSON中加载实际标记,
for(var i in userList){
$scope.markscardData.actual_marks[userList[i].user_id] = userList[i].actual_marks;
}
将此行放在$scope.userList = response.data.responseMsg;
下方。
如果适用,这应该初始化您的动态模型。
此外,您需要在开始时将这两个声明放在:
$scope.markscardData = {};
$scope.markscardData.actual_marks = [];
希望这对你有用.. :))
答案 1 :(得分:0)
我确实不确定您发布的内容,因为您在响应中提供的代码应该可以正常运行:
假设您只是尝试更新字段的值,那么我创建一个您可以调用的方法,将用户数组作为其参数,然后捣乱您创建的模型名为markscardData
。
this.markscardData = {
actual_marks : {}
}
this.updateList = function(newList) {
angular.forEach(newList, function(user) {
if (!user || !user.user_id) return;
ctrl.markscardData.actual_marks[user.user_id] = user.actual_marks;
});
}