Javascript 仅在需要时将角度服务注入控制器
我尝试实现角度服务、控制器、指令、过滤器的延迟加载,我找到了使用RequireJS做类似事情的方法。但我找不到如何仅在需要时将服务动态加载到控制器中 我的控制器:Javascript 仅在需要时将角度服务注入控制器,javascript,angularjs,requirejs,Javascript,Angularjs,Requirejs,我尝试实现角度服务、控制器、指令、过滤器的延迟加载,我找到了使用RequireJS做类似事情的方法。但我找不到如何仅在需要时将服务动态加载到控制器中 我的控制器: require(["app"], function (app) { app.controller('dialogsCtrl',function($scope,dialogsSer){ $scope.tooltip = function(){ dialogsSer.tooltip(); // work ok
require(["app"], function (app) {
app.controller('dialogsCtrl',function($scope,dialogsSer){
$scope.tooltip = function(){
dialogsSer.tooltip(); // work ok
}
...
我想实现类似的东西(也可能以角度内联方式注入服务):
需要配置:
require.config({
baseUrl: ...,
paths: {
....
'dialogService':'resources/web/app/services/dialogsSer',
...
deps: ['app']
});
对话服务:
require(["app","directives"], function (app) {
app.service('dialogsSer', function($http,$uibModal){
var ds = {};
...
我在运行时找到了用于插入服务的方法
require(['dialogService','userSer'],function(){
if(!$rootScope.userSer)$rootScope.userSer = $injector.get("userSer");
if(!$rootScope.dialogsSer)$rootScope.dialogsSer = $injector.get("dialogsSer");
$scope.$apply();
});
require(['dialogService','userSer'],function(){
if(!$rootScope.userSer)$rootScope.userSer = $injector.get("userSer");
if(!$rootScope.dialogsSer)$rootScope.dialogsSer = $injector.get("dialogsSer");
$scope.$apply();
});