我正在尝试将变量传递给angular js config, 这是我的js app:
var app = angular.module('myApp', ['ngMaterial', 'sasrio.angular-material-sidenav', 'ui.router']);
app.controller('baseController', function ($scope, $mdDialog, $mdMedia, $http, $rootScope, $timeout, $mdToast, $mdSidenav, ssSideNav) {
$scope.menu = ssSideNav;
$scope.getRequirment = function () {
$http.get("site/requirment",
{params: {dir: $scope.currentPath}})
.then(function (response) {
return response.data;
});
};
$scope.getRequirment();
});
app.config(['$mdThemingProvider', '$locationProvider', 'ssSideNavSectionsProvider', '$stateProvider',
function ($mdThemingProvider, $locationProvider, ssSideNavSectionsProvider, $stateProvider) {
$mdThemingProvider.theme('default')
.primaryPalette('deep-orange')
.accentPalette('deep-orange');
ssSideNavSectionsProvider.initWithTheme($mdThemingProvider);
ssSideNavSectionsProvider.initWithSections("Get getRequirment function in controller");
}]);
如何从config中调用控制器中的函数?
我的意思是这一行:
ssSideNavSectionsProvider.initWithSections("Get getRequirment function in controller");
答案 0 :(得分:0)
有一种方法可以做到这一点:
你可以把它放在你的配置
中$rootScope.$watch("variable", function(n, o) {
// assign n value
})
并在您的控制器中设置
$rootScope.variable
答案 1 :(得分:0)
这是不可能的,控制器在运行阶段执行,配置在配置阶段。
我稍微研究了一下源代码,作为服务变量可用的部分,您可以尝试从控制器添加它们:
ssSideNavSections.sections.push(yourSection);
答案 2 :(得分:0)
您可以在配置块中设置常量,然后通过将其注入控制器来访问该常量。
来源:https://www.agiliq.com/blog/2017/04/what-when-and-how-angularjs-configuration-blocks/