我正在ServiceNow中工作,并试图使用$ uibModal打开一个包含嵌入式小部件的模式窗口。第一次单击时,该模式会很好地打开,但是此后的每次单击都需要两次单击才能加载正确的内容。我在一些站点上读到了它的原因,因为模板缓存无法清除,有些人建议不要使用脚本标签,但是我不确定如何在没有ServiceNow中的脚本标签的情况下使uibModal正常工作。有人碰到这个吗?希望获得一些有关解决此问题的建议。
这是我的客户脚本:
c.onWidget2 = function(template, task) {
c.taskName = task.short_description;
c.modalInstance = $uibModal.open({
templateUrl: template,
scope: $scope,
size: 'lg'
});
spUtil.get('hrj_task_activity_scoped', {
sys_id: task.sys_id,
table: 'sn_hr_core_task',
recordInfo: task.taskInfo
}).then(function(response) {
c.newTask2 = response;
});
};
//closeModal for the "x"
c.closeModal = function() {
c.modalInstance.close();
};
这是我的HTML:
<div class="card" ng-click="c.onWidget2('newTask2',task);"></div>
<script>
<div class="panel panel-default">
<div class="panel-heading clearfix">
<h4 class="panel-title pull-left">{{c.taskName}}</h4>
<span ng-click="c.closeModal()"><i class="fa fa-times pull-right"></i></span>
</div>
<sp-widget widget="c.newTask2" options="c.newTaskOptions"></sp-widget>
</div>
</script>
答案 0 :(得分:1)
这里的问题是“模态中的指令”,就像这个线程中一样:
Integrating directive in Angular UI Modal
解决方案是在渲染模态后加载指令:
<Image soure={image} style={{width:200, height:200, resizeMode:'stretch'}} />