[英]Passing data from one function to another
我正在尝试从表中编辑数据。
代码的重要部分是:
编辑
$scope.editUser = function(param){
if(param == 'new' ){
$scope.fName = '';
$scope.lName = '';
$scope.edit = true;
}else{
$scope.edit = false;
$scope.fName = $scope.users[param-1].fName;
$scope.lName = $scope.users[param-1].lName;
//console.log($scope.users[param-1].lName);
}
};
ng-点击“保存”按钮
$scope.add = function(){
$scope.users.push({
fName:$scope.users.fName,
lName:$scope.users.lName
});
$scope.users.fName = "";
$scope.users.lName = "";
console.log($scope.users.lName);
};
如何将数据从edit function
传递到add function
以进行保存? 非常感谢
在您的编辑函数中调用添加函数,如下所示
$scope.add()
如果您需要传递任何参数
$scope.add(params)
调用添加函数为$scope.add(param1,param2,..);
将add函数定义为$scope.add=function(param1,param2..){};
但是,我看到代码中的所有变量都是作用域变量,如果您只想修改这些变量,则可以直接在add函数中使用它们,而不必将它们作为参数传递。
您(几乎)拥有正确的ViewModel,并且不需要在这些函数之间传递任何内容-它们彼此之间不会相互调用。
您有$scope.users
并且有$scope.fName
和$scope.lName
。 很好-您只需要“记住”正在编辑的用户即可。
我只是将其略微更改为:
$scope.users = [...]; // whatever you have
$scope.userBeingEditedCopy = null;
var userBeingEditedMaster = null;
然后,当单击“编辑”时,将要编辑的实际用户对象传递给它:
$scope.editUser = function(user){
userBeingEditedMaster = user;
$scope.userBeingEditedCopy = angular.copy(userBeingEditedMaster);
}
当您要保存更改时,您已经拥有所有数据:
$scope.saveChanges = function(){
angular.copy($scope.userBeingEditedCopy, userBeingEditedMaster);
// optionally, remove the user from being edited
userBeingEditedMaster = $scope.userBeingEditedCopy = null;
}
在视图中,将这些连接起来很容易:
<div ng-repeat="user in users">
<button ng-click="editUser(user)">Edit</button>
{{user.fName}} {{user.lName}}
</div>
<h3>Edit User:</h3>
<div>first name: <input ng-model="userBeingEditedCopy.fName"></div>
<div>last name: <input ng-model="userBeingEditedCopy.lName"></div>
<button ng-click="saveChanges()">Save Changes</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.