我们的团队正在ServiceNow中构建一个应用程序并使用AngularJS Material。我们构建了一个调查表,允许用户最后对答案进行编辑。对于可以编辑的问题,我们尝试使用mdDialog来打开一个模态窗口,用户可以在其中编辑答案。我们遇到的问题是,当用户单击以编辑答案,然后关闭该模式以打开另一个答案进行编辑时,该模式每次都会打开第一个答案。我们似乎无法关闭该范围以打开另一个范围。
在我们的HTML中,我们有一个铅笔glyphicon,它带有ng键以单击editQuestionFnct函数:
<td rowspan="2" style="color: #979797; padding-right: 15px; cursor: pointer;" ng-click="editQuestionFnct(item.quest_id)"><span class="glyphicon glyphicon-pencil" title="Edit Answer" style="padding-right: 5px;"></span></td>
editQuestionFnct将几个项目传递到showPrerenderedDialog函数中,该函数生成模式:
$scope.editQuestionFnct = function(val){
$scope.editWidget = {};
spUtil.get("gateway_questionnaire_widget", {//call new instance of this widget
task_id: $scope.data.task_id,
quest_id: val,
request: 'edit',
taskTable: $scope.data.task_table,
questionnaire_table: $scope.params.questionnaireTable,
serviceID: $scope.params.serviceID,
refID: $scope.params.refID,
taskCompleted: false,
editRequest: true
}).then(function(response) {
$scope.editWidget = response;//var to hold widget response to display in modal
$scope.showPrerenderedDialog('#editQuestion');
});
}
showPrerenderedDialog函数呈现模式:
$scope.showPrerenderedDialog = function(name) {
$mdDialog.show({
contentElement: name,
parent: angular.element(document.body),
clickOutsideToClose:true
});
};
这是md-dialog模板:
<div style="visibility: hidden">
<div class="md-dialog-container" id="editQuestion">
<md-dialog style="background-color: #ffffff;" aria-label="edit dialog">
<md-toolbar style="background-color: #022C68; width: 100%;">
<h1 class="md-toolbar-tools" style="color: #ffffff;">Edit Response</h1>
</md-toolbar>
<md-dialog-content style="background-color: #ffffff;">
<!--<div id="editQuestDiv" style="min-width: 700px;">-->
<sp-widget widget="editWidget"></sp-widget>
<!--</div>-->
</md-dialog-content>
<md-dialog-actions layout="row">
<span flex></span>
<md-button ng-click="closeDialog()" class="md-primary md-raised">
Close
</md-button>
</md-dialog-actions>
</md-dialog>
</div>
我在上面的代码中缺少什么,因此我可以为特定问题打开一个模态,然后为另一个问题打开另一个模态?谢谢。