我有index.html
主文件和部分文件view1.html
,我使用ng-route
. 所以我希望控制器只有在被访问view1.js
时才被加载。view1.html
所以我使用resolve
指令成功加载了文件。由于javascript在后台加载角度开始解析view1.html
,我得到:
[ng:areq] Argument 'SimpleController2' is not a function, got undefined
我如何告诉 Angular 已经添加了一个新控制器,并且它应该view1.html
只在应用控制器后解析。
main.js
var demoApp = angular.module('demoApp', ['ngRoute']);
demoApp.config(function ($routeProvider) {
$routeProvider
.when('/view1', {
controller: 'SimpleController1',
templateUrl: 'View1.html',
resolve: {
lol : function get() {
console.log('file is being loaded');
var fileRef = document.createElement('script');
fileRef.setAttribute("type", "text/javascript");
fileRef.setAttribute("src", "view1.js");
document.getElementsByTagName("head")[0].appendChild(fileRef);
fileRef.onload = function () {
console.log('file loaded');
}
}
}
})
.when('/view2',
{
controller: 'SimpleController',
templateUrl: 'View2.html'
})
.otherwise({redirectTo: '/view1'});
});
console.log('config has been added');
控制器.js
console.log("file parsed");
demoApp.filter('myFilter', function ($sce) {
return function (input, isRaw) {
input = input.replace(/a/g, 'b');
return $sce.trustAsHtml(input);
};
});
demoApp.controller("SimpleController1", function ($scope, simpleFactory) {
$scope.names = [
{name: 'Nick', city: 'London'},
{name: 'Sick', city: 'Tokio'},
{name: 'Brick', city: 'cellar'}
];
});
我是 Angular 的新手,我试过这个,这个(如何应用文件)和这个(放弃应用$controllerProvider
)
这个(也没有成功)和这个(不能让整个事情一起工作)我不是甚至可以确定那些描述了我的需求。请给我一个线索,我应该深入研究哪个帖子。