2013-12-13 3 views
0

Я использую всплывающее окно AngularUI bootstrap. Я загружаю aspx-файл в всплывающее окно, используя «iframe». Вот код для моего всплывающего шаблона:Метод контроллера доступа из AngularUI bootstrap modal popup

<script type="text/ng-template" id="uploadPopup"> 
    <div class="modal-header text-center"> 
     <h4>Upload file</h4> 
    </div> 
    <div class="modal-body"> 
     <div id='uploadProcessIndicator' class='statusInd nwAbsPos' ></div> 
     <iFrame scroll="" frameborder=0 ng-src="Upload.aspx" class='uploadIFrame'> 
     </iFrame> 
    </div> 
</script> 

У меня есть метод «chkAttachmentExtension (Filename)» в моей области контроллера, который я пытаюсь вызвать в файле ASPX. Это код для файла ASPX:

<head runat="server"> 
<title></title> 
<script src="js/ext/jquery.js" type="text/javascript"></script> 

<script language="javascript" type="text/javascript"> 
    function enable() { 
     if (document.getElementById('AuthenticateMsg').checked == true) { 
      var filepath = $("#SelectFile").val(); 
      var result = chkAttachmentExtension(filepath); 
      if (result == true) { 
       document.getElementById('btnUploadFile').disabled = false; 
       $(".fileUploadButton").addClass('button1'); 
      } 
      else if (filepath == "") { 
       document.getElementById('AuthenticateMsg').checked = false; 
       document.getElementById('UploadMessage').innerText = 
              "You have not uploaded any file."; 
       $("#UploadMessage").addClass('messageColor'); 
      } 
      else { 
       document.getElementById('AuthenticateMsg').checked = false; 
       document.getElementById('UploadMessage').innerText = 
          "File format not supported.The supported files 
          are: doc,docx,gif,htm,html,jpeg,jpg,mhtml,mpp 
          ,msg,pdf,png,ppt,pptx,psd,sql,txt 
          ,vsd,xls,xlsx,xml,zip."; 
       $("#UploadMessage").addClass('messageColor'); 
      } 
     } 
     else if (document.getElementById('AuthenticateMsg').checked == false) { 
      document.getElementById('btnUploadFile').disabled = true; 
      $(".fileUploadButton").removeClass('button1'); 
     } 

    } 
    function clearText() { 
     if (document.getElementById('UploadMessage').innerText.length > 0) { 
      document.getElementById('UploadMessage').innerText = ""; 
      document.getElementById('btnUploadFile').disabled = true; 
      $(".fileUploadButton").removeClass('button1'); 
      document.getElementById('AuthenticateMsg').checked = false; 
     } 
     else { 
      document.getElementById('btnUploadFile').disabled = true; 
      $(".fileUploadButton").removeClass('button1'); 
      document.getElementById('AuthenticateMsg').checked = false; 
     } 

    } 
    function showLoadingMssg() { 
     document.getElementById('UploadMessage').innerText = "Uploading..."; 
     $("#UploadMessage").addClass('messageColor'); 
     document.getElementById('btnHiddenUploadFile').click(); 
    } 


    // ]]> 
</script> 

Я не в состоянии получить доступ этот метод и получить ошибку «chkAttachmentExtension не определено». Я попытался включить controller.js в файл aspx, но он снова выдает ошибку, так как я думаю, что он уже включен один раз в мой html-файл на главной странице.

Как я могу это решить?

ОБНОВЛЕНО: Содержание IFrame родителя:

Ссылка на изображение: http://uditnarayan.net/wp-content/uploads/2013/12/iframeParent.jpg

ответ

0

Scope присоединен к Dóm элементов, так что если вы можете получить в корневой элемент вашего модальных, вы можете позвонить angular.element(node).scope() на нем. Объект области должен иметь нужные вам методы.

+0

Я могу получить доступ к родительскому элементу iframe с использованием родительского объекта javascript. Я привязал ссылку для моментального снимка, где вы можете увидеть содержимое, которое я получаю для родителя iframe. Но я не понимаю, как я могу получить доступ к этому методу. –

+0

Вы переносите его в вызов 'angleular.element()', а затем вызываете scope() на этом – dtabuenc

Смежные вопросы