2015-04-01 17 views
0

我有一個指定的URL參數時,我想顯示的模式(例如,url.com/?showmodal=1。我怎麼能說launchModalIfParameter股利已經呈現後呢?一些提取物包括如下。如何在DOM對象在Angular中呈現時調用控制器中指定的函數?

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(使用引導的模式對話框)

<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"); 
    } 
} 

回答

1

這很容易與自定義指令todo。

本質上,你創建一個自定義指令,並且在鏈接函數(在你的模態被編譯,數據綁定等之後運行)內,你可以根據一些條件顯示模態。

它是如此簡單:

link: function(scope, element, attrs) { 
       if (getUrlParameter('ticket') == 1) { 
        $(element).modal('show'); 
       } 
      } 

小提琴說明此位置: http://jsfiddle.net/gtxdLcb8/

這方面的一個額外好處是,你可以添加一個$上觀看範圍變量(在鏈接功能),並在變量發生變化時自動顯示或隱藏模態。

相關問題