在 Angular1 中使用 $routeProvider 时如何跨页面正确加载 javascript
How to correctly load javascript across pages when using the $routeProvider in Angular1
目前,我使用Angular的$routeProvider 和$locationProvider 来浏览SPA。
我不清楚如何使用控制器跨页面实现 javascript。
一旦我切换页面,javascript 控制器就不会被执行。
我在下面发布了一个示例。
我的脚本是从 mainScript.js
调用的
app.config(['$routeProvider', '$locationProvider', function ($routeProvider,
$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when("/", {
templateUrl: "partials/home.html"
, controller: "PageCtrl"
})
// Pages
.when("/pricing", {
templateUrl: "partials/pricing.html"
, controller: "PageCtrl"
})
.otherwise("/404", {
templateUrl: "partials/404.html"
, controller: "PageCtrl"
});
}]);
app.controller('PageCtrl', function ( $scope ) {
$scope.menuCtrl = function(){
//execute code across pages
}
$scope.menuCtrl();
});
}());
您可以使用 oclazyload
。首先在您的应用中注入 oc.lazyload
然后:
app.config(['$routeProvider', '$locationProvider', function ($routeProvider,
$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when("/", {
templateUrl: "partials/home.html"
, controller: "PageCtrl",
resolve:{
loadFiles: [
"$ocLazyLoad", function ($ocLazyLoad) {
return $ocLazyLoad.load([
"mainScript.js",
]);
}
]
}
})
目前,我使用Angular的$routeProvider 和$locationProvider 来浏览SPA。 我不清楚如何使用控制器跨页面实现 javascript。 一旦我切换页面,javascript 控制器就不会被执行。 我在下面发布了一个示例。 我的脚本是从 mainScript.js
调用的app.config(['$routeProvider', '$locationProvider', function ($routeProvider,
$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when("/", {
templateUrl: "partials/home.html"
, controller: "PageCtrl"
})
// Pages
.when("/pricing", {
templateUrl: "partials/pricing.html"
, controller: "PageCtrl"
})
.otherwise("/404", {
templateUrl: "partials/404.html"
, controller: "PageCtrl"
});
}]);
app.controller('PageCtrl', function ( $scope ) {
$scope.menuCtrl = function(){
//execute code across pages
}
$scope.menuCtrl();
});
}());
您可以使用 oclazyload
。首先在您的应用中注入 oc.lazyload
然后:
app.config(['$routeProvider', '$locationProvider', function ($routeProvider,
$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when("/", {
templateUrl: "partials/home.html"
, controller: "PageCtrl",
resolve:{
loadFiles: [
"$ocLazyLoad", function ($ocLazyLoad) {
return $ocLazyLoad.load([
"mainScript.js",
]);
}
]
}
})