Метод контроллера доступа из модального всплывающего окна начальной загрузки AngularUI

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

<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>

I am not able to access this method and get the error "chkAttachmentExtension is undefined". I tried including the controller.js in the aspx file but it again throws an error since I think it's already included once in my Home page html file.

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

ОБНОВЛЕНО: содержимое родительского элемента iframe:

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


person Adarsh Konchady    schedule 13.12.2013    source источник


Ответы (1)


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

person Daniel Tabuenca    schedule 13.12.2013
comment
Я могу получить доступ к родителю iframe, используя родительский объект javascript. Я приложил ссылку на снимок, где вы можете увидеть содержимое, которое я получаю для родителя iframe. Но я не понимаю, как я могу получить доступ к методу области через это. - person Adarsh Konchady; 13.12.2013
comment
Вы заключаете его в вызов angular.element(), а затем вызываете scope() для этого - person Daniel Tabuenca; 13.12.2013