angularjs - 具有angular-ui模态形式的angularjs
问题描述
嗨,我是 angularJS 的初学者,我在单击按钮时显示 angular-ui 模态表单并且必须添加新用户,但我真的很困惑如何处理以及如何执行这种情况,我尝试了下面的代码,但它无法正常工作一个帮助我更好的方法来做到这一点
我的要求我想打开模式表单以添加新用户,当我单击保存按钮时,我需要在我的数组中添加该新用户
main.js
// create the module, pass in modules it depends on
var app = angular.module('myApp', ['ui.bootstrap']);
// $modal service is now available via the ui.bootstrap module we passed in to our module
app.controller('myController', ['$scope', '$uibModal', '$log',
function ($scope, $uibModal, $log) {
$scope.newUser = {};
$scope.info = "";
$scope.users = [
{ username: "rimon", fullName: "Md. Mamunur Rashid Rimon", email: "rimonmath@gmail.com" },
{ username: "shamim", fullName: "Md. Tamim Hossain", email: "shamim@gmail.com" },
{ username: "tamim", fullName: "Tamim Iqbal", email: "tamim@gmail.com" }
];
$scope.addUser = function () {
var modalInstance = $uibModal.open({
templateUrl: 'add_user.html',
controller: 'ModalInstanceCtrl',
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
}
$scope.saveUser = function () {
console.log("Saving...");
$scope.users.push($scope.newUser);
$scope.info = "New User Added Successfully!";
$scope.newUser = {};
};
$scope.selectUser = function (user) {
$scope.clickedUser = user;
};
$scope.deleteUser = function () {
console.log($scope.users.indexOf($scope.clickedUser));
$scope.users.splice($scope.users.indexOf($scope.clickedUser), 1);
$scope.info = "User Deleted Successfully!";
};
$scope.clearInfo = function () {
$scope.info = "";
};
}]);
angular.module('myApp').controller('ModalInstanceCtrl', function ($scope,$uibModalInstance) {
$scope.saveUser = function () {
alert("You clicked the ok button.");
$uibModalInstance.close();
};
$scope.close = function () {
alert("You clicked the cancel button.");
$uibModalInstance.dismiss('cancel');
};
});
表单.html
<div>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">New User Registration</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputEmail3" placeholder="Username" ng-model="newUser.username">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputEmail3" placeholder="Email" ng-model="newUser.email">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Full Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputEmail3" placeholder="Full Name" ng-model="newUser.fullName">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="saveUser();">Save</button>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="close()">Close</button>
</div>
</div>
解决方案
据我所知,您的问题在于您对 FormController.js 的声明,请尝试更改此代码:
app.controller('ModalInstanceCtrl', ['$scope','$modalInstance',function ($scope, $modalInstance) {
$scope.close = function () {
$modalInstance.dismiss('cancel');
};
$scope.saveUser = function(){
//SUBMIT FORM HERE
}
}]);
对于这个:
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($uibModalInstance, data)
{
var pc = this;
pc.data = data;
pc.ok = function () {
//{...}
alert("You clicked the ok button.");
$uibModalInstance.close();
};
pc.cancel = function () {
//{...}
alert("You clicked the cancel button.");
$uibModalInstance.dismiss('cancel');
};
});
从您的代码中我注意到:
您对模态控制器的声明错过了有时需要的主模块应用程序的名称。
您正在使用 '$modalInstance' 而不是 $uibModalInstance
如需进一步参考,请转到此处。请尝试这些更改,让我知道它是否有效!
推荐阅读
- java - 尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageURI(android.net.Uri)”
- azure-devops - 如何在 Azure Devops 中实现 Allure 报告?
- javascript - 在fabric js中在不同尺寸的画布中显示相同位置的对象
- flutter - 在颤动中加密视频文件
- javascript - 无法使用 Moment.JS 将字符串日期和时间转换为格式
- javascript - LESS 不使用 Webpack 4 加载
- python-3.x - 如何为 python 模块的“py.test”运行“tox”命令?
- javascript - 如何将头像 URL 转换为 .png?
- objective-c - 由于 UIWebView,Objective c AFNetworking 在苹果上被拒绝
- django - 从 django 模板中保存多个值