在 angular js 模式弹出窗口或局部视图中加载外部 js 文件

Load the external js files in angular js modal popup or partial view

我正在开发 angularJS 应用程序并且也在使用 asp.net mvc。 我想从 angularJS 打开一个模态弹出窗口,然后在该弹出窗口中呈现 mvc 的 "View"。

我面临的问题是弹出窗口正在打开,但 js 文件未加载到模态弹出窗口中。请帮助我解决在模式弹出窗口中加载 js 文件的问题。

代码

    // main angular js
angular.module('PopUpModule', ['ngResource','ngRoute','ui.bootstrap', 'uigridApp'])
    .controller("ModalDemoCtrl", function ($scope, $uibModal, $log, $window) {
    $scope.open = function (size) {
                var modalInstance = $uibModal.open({
                    templateUrl: 'UiGridDemo.html',
                    controller: 'uigridCtrl',
                    size: 'lg',
                    backdrop:'static',
                    windowClass: 'app-modal-window',
                              resolve: {
                        '$uibModalInstance': function () {
                            return function () { return modalInstance; }
                        }
                    }

                });

//模态弹出(mvc .cshtml 文件的视图)

         //script
<script src="Script/Script2.js"></script>

       <body>
                //html code goes here
    </body>

问题是我想加载具有 "jquery code" 的 js 脚本 (Script2.js) 应该加载到模态弹出窗口中,即 mvc 模态弹出窗口的视图 (.cshtml) 通过 angular.but 它没有加载(Script2.js)。我检查了 chrome dev.tools。如何加载它帮我解决这个

我认为uigridCtrl没有在index.html中加载检查js文件是否在index.html中加载,并且在open方法中无需提及控制器属性。它将重新初始化控制器。

编辑 - 如果 uigridCtrl 与父级 html 的控制器相同,则无需在弹出窗口 html 中提及。它将与父 html.

共享相同的范围

如果我在打开模态的父文件中加载 js 文件,我得到了答案 popup.This 文件将可用于此模态弹出窗口,

如果你不想添加文件或修改父文件中的代码,我提供的解决方案可以供你将来使用controller/directive。您还必须添加一些额外的参数。它工作完美,我不必对父级进行任何修改。我正在提供实时工作应用程序的代码。

 $ocLazyLoad.load({
    name: '', // Module Name - Optional
    files: [
        'viewRequestController.js',
        'request-tpl.js'
    ]
 })
 .then(function() {
    var modalInstance = $modal.open({
        templateUrl: 'viewRequest.html',
        controller: 'popupCtrl',
        controllerAs:'ctrl',
        backdrop: 'static',
        keyboard: false,
        resolve: {
            initVars: function(){
                return initVars;
            }
        }
    });

    modalInstance.result.then(
        function(response) { },
        function(response) {
            // Executes code when your modal closes.
        }
    );
});

添加 $ocLozyLoad 和 $modal 参数。希望对你有用。