Angularjs将带有节点js的复选框1或0值添加到mysql

时间:2018-01-24 09:37:07

标签: javascript mysql angularjs node.js checkbox

我是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中做什么。

2 个答案:

答案 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模式执行此操作。单击按钮并选中/取消选中该复选框。