0

主引擎/路由(我正在尝试逐步替换)不是用 Angular 编写的。

由于我在某些页面上使用了 Angular,当我尝试使用一个用不同引擎编写的函数来登陆任何用 Angular 编写的页面时,我遇到了一个问题,该函数呈现不同的视图,例如:header、main、footer

在索引文件中,我放置了 angularApp 脚本链接:

<script type="text/javascript" src="javascripts/ang/myApp.js"></script>

和一个主控制器:

<div id="view-container" ng-controller="myAppController as appCtrl"></div>

在里面,我用他们自己的 Angular 控制器放置了视图:

<div class="row bar hidden" ng-controller="StatusBarController as sbarCtrl">

所有控制器(和视图的 js 文件)都由引擎通过此函数动态加载到页面内:

function attachJavaScriptFileInitial(fileURL) {
    if(minifiedJS) fileURL = fileURL.replace(".js", ".min.js");
    if(cachingOnOff) fileURL = fileURL+"?v="+appVersion;

    var jsPath =  fileURL.match(/^templates\/.+/) ? fileURL : "javascripts/"+ minifiedDir + fileURL;
    return $.cachedScript(jsPath);
}

在控制器上:

var ajaxCallsBar = {
    "getPerson"          : {"URL" : "user/adult/"},
    "getCard"           : {"URL" : "mny/card/"+viewingAsId},
};



console.log(angular);//works
console.log(myApp);//works

myApp.controller("StatusBarController", ["$scope","initAjaxCalls", "dataAggregator", function($scope, initAjaxCalls, dataAggregator){
    console.log("INSIDE: StatusBarController");
    var self = this;

    initAjaxCalls(ajaxCallsBar).then(function(data){
        dataAggregator(data, $scope);
        self.fName = $scope.getPerson.firstName;
    });

主要问题是,如果我不刷新页面,控制器就根本不起作用,因为它们不存在。

  • 指数 :<script type="text/javascript" src="javascripts/ang/myApp.js"></script>

  • pageA-block1:控制器1

  • pageA-block2:控制器2
  • pageA-block3:控制器3

所有这些块都使用 myApp("myAppController") 加载到主(块容器)中

4

0 回答 0