AngularJS加载两次,导致错误

时间:2018-09-19 14:27:09

标签: javascript angularjs angular-ui-router outlook-addin

我正在开发一个有角度(1.7)的应用程序,由于该应用程序加载了两次,所以遇到了一些问题。基本上,我有一个庞大的前端应用程序,并且我试图仅将其一部分用于创建一个Outlook插件。我遇到的问题是,由于该应用程序被加载了两次,因此我不关心的所有其他控制器也都被加载了。有关更多说明,请参见下文。

我的app.js文件外观为

angular.module(APP, [
    'ui.router',
    'templates-outlook',
    'ngCookies',
]).config([
        '$locationProvider',
        '$urlRouterProvider',
        '$stateProvider',
        function ($locationProvider,  $urlRouterProvider,  $stateProvider,$sceProvider, $sceDelegateProvider) {
            
            console.log('APP.JS');

            if(Office !== "undefined") {
                Office.initialize = function (reason) {
                    Office.onReady().then((res) => {
                        console.log('wagamama', res);
                    })
                };
            }
            
            if (location.hash === '') {
                $locationProvider.html5Mode(true);  // HTML5
            } else {
                $locationProvider.hashPrefix('!');
            }

            $stateProvider
                .state('extension/', {
                    url: '/extension/',
                    templateUrl: 'templates/outlook/extension.html/',
                    controller: 'ExtensionController'
                });
                
            $urlRouterProvider.otherwise('/');

        }]) ...
        
        

在我的index.php文件中,我有类似的东西

if (strncmp($_SERVER['REQUEST_URI'], '/extension/', 9) === 0) {
	require('./index.extension.php');
	exit();
} 

上面代码的重点是当用户访问时 http://8c6rr91e.ngrok.io/extension,应用程序的其余部分不会加载。

发生的事情是用户转到 http://8c6rr91e.ngrok.io/extension

我看到以下控制台: APP.JS 响应:{.... //办公室用品

然后重新加载页面,URL更改为http://8c6ec91e.ngrok.io/#!/,php检查失败,因此它加载了整个应用程序,从而导致两个错误:

1-未定义办公室 2-正在加载主应用程序中的所有其他控制器,因此出现进样器错误

我的问题是: -如何避免两次加载? -#怎么了?

谢谢

0 个答案:

没有答案