使用Angular引导模态多重问题
Using Angular with Bootstrap Modal Multiple Issues
简短的问题…是否有任何方法使用ng-disable在一个引导模态对话框当一个窗体在部分视图中显示的模态是无效的?
长问题…我在Asp.net MVC工作。我需要包括一个模态形式的部分视图。我需要表单在单击项目时显示详细信息,以便对其进行编辑,或者显示空白表单,以便用户添加新记录。我可以让一切工作只是完美地使用引导模式(数据目标)打开对话框。但是,由于我使用ng-click将更改保存到数据库中。我无法使用data-解散关闭对话框,因为按钮位于部分视图中。如果我从部分中删除保存按钮并将其放在父组件上,它可以正常工作,但是,我的ng-disable不能用于表单验证。我以为我已经通过切换到Angular ui-Modal解决了整个事情,但是当我包含该代码时,它在显示现有记录的详细信息时工作得很好,但根本不会打开模态来显示新记录的空白表单。这已经让我发疯好几个小时了。
就是这样…我需要使用ng-click从我的Angular控制器中关闭Bootstrap Modal,或者我必须弄清楚如何使用Angular ui-Modal显示空白表单。请帮助!
这是我的模式在我的cshtml视图:
<div class="container">
<!-- Modal -->
<div class="modal fade" id="addNewComment" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header" style="background-color:#003A5D; color:white">
<h4 class="modal-title">Comment View</h4>
</div>
<div style="background-color:red;color:white;margin-top:-3px">Questionnaire is Incomplete</div>
<div class="modal-body">
@Html.Partial("_AddNewComment")
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
这是被渲染的局部视图:
<div class="panel panel-primary">
<div class="panel-heading">Add New Comment</div>
<div class="panel-body" ng-repeat="cm in selection.comment">
<form name="CommentForm">
<table style="width:100%; border:none">
<tr>
<td style="border:none">
Short Comment (displayed on the Contractor's homepage)<br />
<div style="font-size:8px">Max 50 characters</div><br />
<input name="ShortComment" type="text" style="width:250px" value="{{cm.vchShortComment}}" ng-model="cm.vchShortComment" required />
<div role="alert"> <span class="error" ng-show="CommentForm.ShortComment.$error.required">Short Comment is required!</span></div>
</td>
<td style="border:none;width:40%">
<div class="panel panel-default">
<div ng-controller="ContractorCtrl">
<br />
<p class="input-group">
<span style="padding-left:30px">Start Date:</span><span style="float:right">
<input type="text" style="width:200px; height:30px" class="form-control" datepicker-popup="shortDate" ng-model="startDate" is-open="status.opened" min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="false" close-text="Close" />
</span>
<span class="input-group-btn">
<button style="height:30px" type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<div ng-controller="ContractorCtrl">
<p class="input-group">
<span style="padding-left:30px">End Date:</span><span style="float:right">
<input type="text" style="width:200px; height:30px" class="form-control" datepicker-popup="shortDate" ng-model="endDate" is-open="status.opened" min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="false" close-text="Close" />
</span>
<span class="input-group-btn">
<button style="height:30px" type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<br />
<span style="padding-left:30px">Created By: {{user}}</span>
</div>
</td>
</tr>
</table>
Long Comment (shown as Pop-up on the Contractor's homepage)<br />
<div style="font-size:8px">Max 2000 characters</div><br />
<textarea style="width:100%;height:200px" ng-model="cm.vchLongComment" required>
{{cm.vchLongComment}}
</textarea>
<br />
<div>
<span style="float:left"><button type="button" class="btn btn-danger">Delete Comment</button> <button type="button" class="btn btn-primary">Archive</button></span><span style="float:right"><button type="button" style="background-color:#adabab; color:White; border-color:#adabab" data-dismiss="modal" class="btn btn-default" ng-click="clickTest()">Cancel</button> <button type="button" class="btn btn-primary" data-dismiss="modal" ng-disabled="CommentForm.$invalid" ng-click="saveComment()">Save</button></span>
</div>
</form>
</div>
</div>
下面是我的Angular控制器的代码:
$scope.clickTest = function (comment) {
debugger;
$scope.selection.comment.splice(comment);
};
$scope.ShowDetails = function (comment) {
debugger;
if (comment == undefined)
{
comment = [
{
id: 0,
vchShortComment: 'please add short comment',
vchLongComment: 'please add long comment'
}
]
}
$scope.selection.comment.push(comment);
//modalInstance = $modal.open({
// templateUrl: 'addNewComment',
// controller: ModalInstanceCtrl
// });
};
var ModalInstanceCtrl = function ($scope, $modalInstance) {
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
我能够解决我所有的问题,通过包装整个模态"标签。我把按钮放在模态页脚,现在数据目标,数据解散和表单验证都按需要工作。下面是新的HTML模式。我希望这对其他人有所帮助!
<form name="CommentForm">
<div class="modal fade" id="addNewComment" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header" style="background-color:#003A5D; color:white">
<h4 class="modal-title">Comment View</h4>
</div>
<div style="background-color:red;color:white;margin-top:-3px">Questionnaire is Incomplete</div>
<div class="modal-body">
@Html.Partial("_AddNewComment")
</div>
<div class="modal-footer">
<span style="float:left"><button type="button" class="btn btn-danger">Delete Comment</button> <button type="button" class="btn btn-primary">Archive</button></span><span style="float:right"><button type="button" style="background-color:#adabab; color:White; border-color:#adabab" data-dismiss="modal" class="btn btn-default" ng-click="clickTest()">Cancel</button> <button type="button" class="btn btn-primary" data-dismiss="modal" ng-disabled="CommentForm.$invalid" ng-click="saveComment()">Save</button></span>
</div>
</div>
</div>
</div>
</form>
相关文章:
- 在将缩略图链接到模态时遇到问题
- 从谷歌地图自定义控件打开离子模态时遇到问题
- Jquery 关闭模态问题
- 模态对话框与指令在角度,范围问题
- 华丽的弹出模态问题“获取内联”
- 模态中模态的关闭问题 - 引导
- AngularJS Bootstrap UI,将数据传递到模态的问题.已选择卡未定义
- 模态弹出问题
- 使用模态时出现问题
- 引导模态元素的高度问题
- 铬CEF显示模态对话问题
- 这个模态有什么问题.
- Angular UI 模态的范围问题
- 在控制器中调用ng模态时出现问题
- jQuery图像调整大小以适应模态的问题
- 关闭模态问题
- 在第一个模态中打开另一个模态时,启动模态问题
- 使用Angular引导模态多重问题
- JQuery / JavaScript线程问题-模态对话框
- Bootstrap:使用模态显示动态数据时出现问题