【发布时间】:2018-08-10 08:13:00
【问题描述】:
使用 AngularJs 1.6.7,我创建了一个表,该表从数据库中提取项目详细信息并在表中显示这些详细信息。每行都有一个使用 ng-show/hide 的修改/更新按钮。点击修改时,div变为可编辑的输入字段,点击更新时,新的输入数据将在数据库中更新。
我正在尝试访问 ng-repeat 中的输入项,并使用 ng-model 绑定输入以使用 Flask 更新数据库中的项目。
问题是,当我在点击更新后访问 AJS 中的数据时,没有数据绑定到新的输入值。
我的 HTML 看起来像这样。
<tr data-ng-repeat="(key, value) in projects" >
<td>
<div data-ng-hide="edditable_project[value.project_name]">{[value.project_name]}
</div>
<div data-ng-show="edditable_project[value.project_name]">
<input class="form-control" data-mg-model="updatedProjectName" value="{[value.project_name]}">
</div>
</td>
<td>
<button class="btn btn-danger add-on pull-right btn-sm" data-ng-click="removeProject(value)">Delete</button>
<button class="btn btn-primary add-on btn-sm pull-right" data-ng-hide="edditable_project[value.project_name]" data-ng-click="modify(value.project_name)">Modify</button>
<button type="submit" class="btn btn-success pull-right btn-sm " data-ng-show="edditable_project[value.project_name]" data-ng-click="update(value)">Update</button>
</td>
</tr>
我的控制器看起来像这样:
app.controller('projectSettingsController', ['$scope', '$http', function($scope, $http) {
$scope.modify = function(project) {
$scope.edditable_project[project] = true;
};
$scope.update = function(project) {
data = {
project_name: $scope.updatedProjectName,
}
console.log($scope.updatedProjectName);
// Update project.
$http.post('/api/project/update-project', data).then(function(response) {
toastr.success(response.data);
});
$http.get('/api/project/get-all-project-details').then(function (response) {
$scope.projects = response.data;
});
$scope.edditable_project[project] = false;
};
}]);
ng-model="updatedProjectName" 的当前输出未定义。
我在范围内做错了吗?
【问题讨论】:
-
最新版本是 1.7.3 时,你是如何使用 AngularJS 1.8 的?
-
哇,我是个白痴。在我的脑海中,它是 1.8,实际上是 1.6.7。哎呀
标签: javascript angularjs angularjs-ng-repeat ngmodel