我有一个模式,我想在指定URL参数时显示(例如,url.com/?showmodal=1
。如何在渲染div后调用launchModalIfParameter
?下面包含了一些摘录。
Core.js
function getUrlParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
}
Widget.html(使用Bootstrap的模态对话框)
<div class="modal fade" id="createSupportTicket" role="dialog" aria-hidden="true">
</div>
Widget.js
$scope.launchModalIfParameter = function () {
if ($('#createSupportTicket').length) {
alert('Found with Length');
}
if (getUrlParameter('ticket') == 1) {
$('#createSupportTicket').modal('show');
console.log("Shown activated");
}
}
答案 0 :(得分:1)
使用自定义指令非常简单。
基本上你创建了一个自定义指令,并且在链接函数(在你的模态被编译,数据绑定等之后运行)中,你可以根据一些标准显示模态。
这很简单:
link: function(scope, element, attrs) {
if (getUrlParameter('ticket') == 1) {
$(element).modal('show');
}
}
小提琴在这里说明了这一点: http://jsfiddle.net/gtxdLcb8/
这样做的另一个额外好处是,您可以在示波器上添加$ watch变量(在链接函数中),并在变量发生变化时自动显示或隐藏模态。