我是Angular js的新手,我想尝试以下方法。 我有一个来自数据库的对象数组。这是网址(示例):http://localhost:3000/items/showAll 我还实现了添加,编辑,更新,删除(后端的crud操作与nodejs和表达js以及带有angularjs的前端)但我的问题是复选框。 我在数据库的表中有一个字段“state”,typ boolean default 0(1或0 value)。 我有一个项目列表(例如100),并希望选中一个复选框,重复一个或多个项目,并将值(1)发送到我在数据库中的归档状态。我的逻辑是:我需要将单个项目ID与复选框绑定,然后向复选框添加一个值,如果选中则将其发送到数据库。
<input type="checkbox" ng-model="state" parse-int ng-true-value="'1'" ng-false-value="'0'" class="form-check-input" >
[{"id":1,"name":"item1","state":0}]
我的控制器可以做什么?
更新
代码:控制器
$scope.createState = function() {
var postItem = {
id : $scope.id,
state : $scope.state
};
itemsService
.createItem(postItem)
.then(
function successCallback(response, data) {
$scope.clearForm();
},
function errorCallback(error, data, status, haders, config) {
console.log("Error getting: " + data);
}
);
};
服务:
var pathItems = "/items/add";
this.createItem = function(postItem) {
return $http.post(pathItems, postItem)
};
html ng-repeat:
<input type="checkbox" ng-true-value="1" ng-false-value="0" ng-model="item.state" ng-click="createState(item.id)">
更新数据库,api
addItem: function(item, id, callback) {
return database.query("Update items SET state=? WHERE id=?", [item.state, id], callback);
},
router.post('/update/', function(req, res, next) {
items.addItem(req.body, function(error, count) {
if (error) {
res.json(error);
} else {
res.json(req.body);
}
});
});
这可以更新数据库,我可以从bootstrap模式执行此操作。我希望每个用户都有一个复选框列表,但我现在不在AngularJS中做什么。
答案 0 :(得分:0)
根据您的问题,每次单击复选框时,我都可以理解,您希望使用适当的状态进行API调用。将状态附加到复选框的var runnable = new MyRunnable(async () =>
{
// Do whatever you need to do, including capturing of local vars, app/activity context, etc.
await Task.Delay(1000);
Toast.MakeText(this, "In runnable", ToastLength.Long).Show();
~~~
});
runnable.Run();
。然后在ng-model
上调用一个函数,该函数将进行API调用以更新数据库,
您可以查看resolution演示
<强> HTML 强>
ng-click
<强>的Javascript 强>
<body ng-app="app" ng-controller="controller">
<div ng-repeat="item in data">
{{item.name}}
<input type="checkbox" ng-true-value="1" ng-false-value="0" ng-model="item.state" ng-click="makeAPICall(item.id)"><br>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
</body>
答案 1 :(得分:0)
我的问题中更新的代码可以更新数据库。例如,如果userID = 1,请选中/取消选中用户并更新数据库。在Angularjs HTML中,我可以使用bootstrap模式执行此操作。单击按钮并选中/取消选中该复选框。