【问题标题】:How to pass value between controller and config in angularjs如何在angularjs中的控制器和配置之间传递值
【发布时间】:2019-02-26 03:47:41
【问题描述】:

我正在尝试将变量传递给 Angular js 配置, 这是我的 js 应用:

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");
    }]);

如何从配置中调用控制器中的函数?

我的意思是这一行:

ssSideNavSectionsProvider.initWithSections("Get getRequirment function in controller");

【问题讨论】:

  • 您正在配置ssSideNavSectionsProvider。提供者通常会生成服务,您可以将其注入控制器。阅读更多关于供应商的信息here
  • 这就是我讨厌角材料主题的原因。只需使用 CSS 完成它并在深入之前放弃!

标签: javascript angularjs angularjs-material


【解决方案1】:

有一种方法可以做到这一点:

你可以把它放在你的配置中

$rootScope.$watch("variable", function(n, o) {
// assign n value
})

并在您的控制器中设置

$rootScope.variable

【讨论】:

    【解决方案2】:

    不可能,控制器在运行阶段执行,在配置阶段配置。

    我稍微研究了源代码,部分可用作服务变量,您可以尝试从控制器添加它们:

    ssSideNavSections.sections.push(yourSection);
    

    【讨论】:

      【解决方案3】:

      您可以在配置块中设置常量,然后通过将其注入控制器来访问该常量。

      来源:https://www.agiliq.com/blog/2017/04/what-when-and-how-angularjs-configuration-blocks/

      【讨论】:

        猜你喜欢
        • 2015-12-21
        • 2015-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多