gpt4 book ai didi

javascript - 在 AngularJS 中,哪些模块可以覆盖常量?

转载 作者:行者123 更新时间:2023-11-30 17:30:18 27 4
gpt4 key购买 nike

我正在从 angular-ui 代码中学习模式。他们通常将默认选项定义为组件特定模块上的常量,如下所示:

angular.module('ui.bootstrap.buttons', [])
.constant('buttonConfig', {
activeClass: 'active',
toggleEvent: 'click'
})

https://github.com/angular-ui/bootstrap/blob/master/src/buttons/buttons.js#L3

这是我可以在包含模块中使用常量覆盖的模式吗?

angular.module('app', ['ui.bootstrap.buttons']).constant('buttonConfig',{
activeClass: 'selected'
});

如果不是,我看不到此模式有大量用途,并且想了解他们使用它的原因。对于accordion,常量的扩展需要大量的代码:

 var closeOthers = angular.isDefined($attrs.closeOthers) ? $scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;

https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js#L14

最佳答案

是的,您可以覆盖包含模块中的常量。事实上,您可以覆盖包含模块中的任何内容……这就是模块在 Angular 中的工作方式。

这是一个小 demo .

var app = angular.module('myApp', ['specific']),
specificApp = angular.module('specific', []);

app.constant('active', {from: 'app'});
specificApp.constant('active', {from: 'specific'});

app.controller('AppCntrl', function($scope, active) {
console.log('from AppCntrl: '+active.from); // displays 'app'
});

specificApp.controller('SpecificAppCtrl', function($scope, active) {
console.log('from SpecificAppCtrl: '+active.from); // displays 'app'
});

关于javascript - 在 AngularJS 中,哪些模块可以覆盖常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227110/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com