javascript - 如何使用 AngularJs 从弹出窗口将客户添加到表中?

标签 javascript angularjs

我正在处理简单的客户表信息,如下所示: 姓名和年龄

我创建了一个允许用户添加新客户的函数,并且运行良好。

我还创建了一个弹出窗口,我想从弹出窗口添加新客户。我的弹出窗口工作正常。但是,我无法从此弹出窗口添加新客户。

这是代码笔:

http://codepen.io/HenryGranados/pen/OyPyNW

这是我的代码,运行得很好

var App = angular.module('sortApp', ['ui.bootstrap'])

App.controller('mainController', function($scope, $modal, $log, $filter) {
$scope.sortType     = 'id'; // set the default sort type
$scope.sortReverse  = false;  // set the default sort order
$scope.searchPerson  = '';     // set the default search/filter term

// Array - List of People   
$scope.People = [
{ id: 1, name: 'Mike', Lastname: 'White', age: 26 },
{ id: 2, name: 'Carl', Lastname: 'Barns', age: 41 },
{ id: 3, name: 'Deb', Lastname: 'McDonals',age: 78 },
{ id: 4, name: 'Tommy', Lastname: 'Humbs', age: 32 }
];  

/*
This function adds a new customer
*/
$scope.addPerson = function(){
var customer = {
 name: $scope.name,
 Lastname: $scope.Lastname,
 age: $scope.age,
};

 $scope.People.push(customer);
};
/*
This function removes a customer
*/
$scope.removePerson = function(index){
$scope.People.splice(index, 1);
};  
$scope.openPopupScreen = function() {

var modalInstance = $modal.open({
template: '<div class="modal-header">   <a class="close" data- dismiss="modal"      ng-click="cancel()">X</a><h1>Add Customer</h1></div><div class="modal-body">    <form >' +
'  <label>Name:</label><input type="text" class="span3" ng-model="name"></br>' +
' <label>Lastname:</label><input type="text" class="span3" ng-model="Lastname"></br>' +
' <label>Age:</label><input type="number" class="span3" ng-model="age"></br>' +
' <button type="submit" class="btn btn-success" ng-click="addPerson()">Add In List</button>' +
'  <button type="reset" class="btn ">Clear</button>' +
' </form>' +
'</div>' +
'<div class="modal-footer">' +
'  <a data-dismiss="modal" aria-hidden="true" class="btn btn-primary" ng-click="cancel()">close</a>' +
'</div>',
 controller: ModalInstanceCtrl
});

};

var ModalInstanceCtrl = function($scope, $modalInstance) {
$scope.ok = function() {
$modalInstance.close($scope.selected.item);
};

$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
};

});
</script>

请帮助我。太感谢了!!。

最佳答案

将您的 add 函数放入模态 Controller 中,然后为其提供一个要绑定(bind)的对象并返回到一个函数,该函数会将其添加到您的列表中。

modalInstance.result.then(function (newPerson) {
  $scope.People.push(newPerson);
});

var ModalInstanceCtrl = function($scope, $modalInstance) {
  $scope.person = {name: '', Lastname: '', age: ''};
  ....
  $scope.add = function() {
    //Pass newPerson to caller from main controller
    $modalInstance.close($scope.person);
  };
};

Updated codepen

关于javascript - 如何使用 AngularJs 从弹出窗口将客户添加到表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32380824/

相关文章:

angularjs - 如何将自定义指令动态添加到 div 元素?

javascript - 传递给查看 PHP-JS 时,HTML 标记未正确呈现

javascript - 如何使用 jquery.validate.min.js 验证电话号码和电子邮件?

javascript - HTML5 原生拖放中的克隆阴影

javascript - Angular 动态变量重命名

angularjs - ng-checked/checkbox 的异常行为

css - 响应式 "background-image"不会随着方向更改 css iOS 自动调整大小

javascript - 将 PHP 变量传递给 AngularJS 变量

javascript - 如何替换数字中的多个特殊字符?

angularjs - 在 ng-click 上使用按钮进行过滤和取消过滤