主引擎/路由(我正在尝试逐步替换)不是用 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") 加载到主(块容器)中