在 angular JS 中检测模型特定元素的变化
Detect a change to a paticular element of a model in angular JS
我想要它,这样如果用户编辑会员编号或角色然后推送保存特定行得到 post 请求到我的 API,
http://plnkr.co/edit/plM45Ulwl2zKLFdPsKPl?p=preview
<tr ng-repeat="user in users" id="{{ user.userId}}">
..
<td>{{ user.name}}</td>
<td>{{ user.email}}</td>
<td ng-click="editMemNo = !editMemNo" ng-show="editMemNo">
{{ user.role}}
</td>
..
<button> Save</button>
..
</tr>
angular.module("userList", []).controller("usersCtrl", function($scope) {
var original = [{
"userId": "1",
"memNo": "1",
"name": "asdf",
"username": "max",
"email": "max@gmail.com",
"role": "10",
"mobile": "079951334"
},
..
}];
$scope.users = angular.copy(original);
$scope.original = angular.copy(original);
$scope.editMemNo = false;
$scope.editMemNo = function() {
$scope.editMemNo = true;
};
$scope.roles = ["1", "2", "9", "10"];
基本上我想添加一个 ng-click 到按钮,这样当我点击它时它会 post 只有那一行,在它被改变的情况下(即脏状态)到数据库).所以我可以添加一个函数,比如
$scope.submitRow = function( the row I want ){
$http.post bla bla
};
在按钮中我会
<button ng-click="sumbitRow(What do I put here?)"
所以我想基本上我的问题是我应该在 ng-click 的 submitRow 参数中添加什么?或者是实现我想要实现的目标的最佳方式?
您可以使用 $scope.$watch,它允许您观察对象的一个特定 属性 并将回调绑定到该事件。
http://fdietz.github.io/recipes-with-angular-js/controllers/responding-to-scope-changes.html
编辑:我又看了一遍问题。目前还不清楚您要的是什么,但要了解对象的差异,请尝试以下操作:
https://github.com/flitbit/diff
我有点做到了,我现在觉得自己很傻
对于按钮...
<button class="btn btn-success" ng-click="pushRow($index)">
对于代码...
$scope.pushRow = function($index){
alert( "Lets say that we have posted this to the database " + JSON.stringify( $scope.users[$index] ));
};
我想要它,这样如果用户编辑会员编号或角色然后推送保存特定行得到 post 请求到我的 API,
http://plnkr.co/edit/plM45Ulwl2zKLFdPsKPl?p=preview
<tr ng-repeat="user in users" id="{{ user.userId}}">
..
<td>{{ user.name}}</td>
<td>{{ user.email}}</td>
<td ng-click="editMemNo = !editMemNo" ng-show="editMemNo">
{{ user.role}}
</td>
..
<button> Save</button>
..
</tr>
angular.module("userList", []).controller("usersCtrl", function($scope) {
var original = [{
"userId": "1",
"memNo": "1",
"name": "asdf",
"username": "max",
"email": "max@gmail.com",
"role": "10",
"mobile": "079951334"
},
..
}];
$scope.users = angular.copy(original);
$scope.original = angular.copy(original);
$scope.editMemNo = false;
$scope.editMemNo = function() {
$scope.editMemNo = true;
};
$scope.roles = ["1", "2", "9", "10"];
基本上我想添加一个 ng-click 到按钮,这样当我点击它时它会 post 只有那一行,在它被改变的情况下(即脏状态)到数据库).所以我可以添加一个函数,比如
$scope.submitRow = function( the row I want ){
$http.post bla bla
};
在按钮中我会
<button ng-click="sumbitRow(What do I put here?)"
所以我想基本上我的问题是我应该在 ng-click 的 submitRow 参数中添加什么?或者是实现我想要实现的目标的最佳方式?
您可以使用 $scope.$watch,它允许您观察对象的一个特定 属性 并将回调绑定到该事件。
http://fdietz.github.io/recipes-with-angular-js/controllers/responding-to-scope-changes.html
编辑:我又看了一遍问题。目前还不清楚您要的是什么,但要了解对象的差异,请尝试以下操作: https://github.com/flitbit/diff
我有点做到了,我现在觉得自己很傻
对于按钮...
<button class="btn btn-success" ng-click="pushRow($index)">
对于代码...
$scope.pushRow = function($index){
alert( "Lets say that we have posted this to the database " + JSON.stringify( $scope.users[$index] ));
};