在AngularJS中编辑功能

时间:2015-08-04 13:50:37

标签: angularjs

我是AngularJs的新手,我在AngularJs中做过crud操作,我已经获取了具有(查看,编辑(更新),删除)等选项的用户的所有记录

如果用户想要更新记录,那么他点击编辑然后显示他/她的记录。所有字段都是强制性的如果用户删除文本框中的文本。然后按取消按钮,重定向到mange用户页面,空白字段

就像在我的plunker中一样,我想更新一条记录,点击编辑,然后在名称(文本框)中将其设为空白。立即单击“取消” 然后输出将清空我的记录(名称字段)

但是,我希望用户记录(名称字段)中的数据,如果用户将其设为空白

我在这里更新了我的代码



<!DOCTYPE html>
<html>

  <head>
    
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    <link href="style.css" rel="stylesheet" />
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet" />
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body>
    <h1>Hello Plunker!</h1>
    <div class="container" style="padding-top:20px;">
        <div ng-app="userApp" data-ng-controller="userController" class="container">
            <div ng-show="error"  class="alert alert-danger alert-dismissible" role="alert">
                <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <p>{{ error }}</p>
            </div>
  <div class="modal fade" id="userModel" tabindex="-1" role="dialog" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
                            <h4 class="modal-title" id="myModalLabel" ng-hide="editMode">Add User</h4>
                            <h4 class="modal-title" id="myModalLabel" ng-show="editMode">Edit User</h4>
                        </div>
                        <div class="modal-body">
                            <form class="form-horizontal" role="form" name="adduserform">
                                <div class="form-group">
                                    <label for="title" class="col-sm-2 control-label">Name</label>
                                    <div class="col-sm-10">
                                        <input type="text" data-ng-model="user.name" name="name" class="form-control" id="title" placeholder="Your Name" required title="Enter your name" />
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="title" class="col-sm-2 control-label">Address</label>
                                    <div class="col-sm-10">
                                        <input type="text" data-ng-model="user.address" name="address" class="form-control" id="title" placeholder="Your Address" required title="Enter your address" />
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="title" class="col-sm-2 control-label">ContactNo</label>
                                    <div class="col-sm-10">
                                        <input type="text" data-ng-model="user.contact" name="contact" class="form-control" id="title" placeholder="Your ContactNo" required title="Enter your contactno" />
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="col-sm-offset-2 col-sm-10">
                                        <span data-ng-hide="editMode">
                                            <input type="submit" value="Add" ng-disabled="adduserform.$invalid" data-ng-click="add()" class="btn btn-primary" />
                                    </span>
                                        <span data-ng-show="editMode">
                                            <!-- <input type="submit" value="Update" ng-disabled="" data-ng-click="update()" class="btn btn-primary"/> -->
                                            <input type="submit" disabled="disabled" value="update" class="btn btn-primary"/>
                                        </span>
                                        <input type="button" value="Cancel" data-ng-click="cancel()" class="btn btn-primary" />
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>

            <h1>Users List</h1>
            <table class="table table-hover">
                <tr>
                    <th>User ID</th>
                    <td>Name</td>
                    <th>Address</th>
                    <th>Contact No</th>
                    <th></th>
                </tr>

                <tr data-ng-repeat="user in users">
                    <td><strong>{{ user.id }}</strong></td>
                    <td>
                        <p>{{ user.name }}</p>

                    </td>
                    <td>
                        <p>{{ user.address }}</p>

                    </td>
                    <td>
                        <p>{{ user.contact }}</p>

                    </td>
                    <td>
                        <p>
                            <a data-ng-click="get(user)" href="javascript:;">View</a> |
                            <a data-ng-click="edit(user)" href="javascript:;">Edit</a> |
                            <a data-ng-click="showconfirm(user)" href="javascript:;">Delete</a>
                        </p>

                    </td>
                </tr>
            </table>
            <hr />

            <div class="modal fade" id="viewModal" tabindex="-1" role="dialog" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
                            <h4 class="modal-title" id="myModalLabel">View User</h4>
                        </div>
                        <div class="modal-body">
                            <form class="form-horizontal" role="form" name="viewuser">
                                <div class="form-group">
                                    <label for="Name" class="col-sm-2 control-label">Name</label>
                                    <div class="col-sm-10">
                                        {{user.name}}
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="Address" class="col-sm-2 control-label">Address</label>
                                    <div class="col-sm-10">
                                        {{user.address}}
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="ContactNo" class="col-sm-2 control-label">ContactNo</label>
                                    <div class="col-sm-10">
                                        {{user.contact}}
                                    </div>
                                </div>
                            </form>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class="modal fade" id="confirmModal" tabindex="-1" role="dialog" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
                            <h4 class="modal-title" id="myModalLabel">Confirm Action</h4>
                        </div>
                        <div class="modal-body">
                            Are you sure to delete?
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-ng-click="delete()">Ok</button>
                            <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
  </body>

</html>
&#13;
&#13;
&#13;

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

您正在将模态绑定到原始用户对象。

相反,您可以制作用户的临时副本,如果单击“取消”,则将温度复制回原始用户:

$scope.edit = function () {

    $scope.user = this.user;
    $scope.tempUser = angular.copy($scope.user); //copy user to temp
    $scope.editMode = true;
    $('#userModel').modal('show');
};

$scope.cancel = function () {
    angular.copy($scope.tempUser, $scope.user); // copy back from temp to user
    $('#userModel').modal('hide');
}

请参阅此plunker