在Angular组件中自动注入属性以减少样板代码

时间:2016-12-10 14:41:56

标签: javascript angularjs angularjs-components

我们正在开发一个大型的AngularJS(1.5)应用程序,它由大量常量组成,几乎每个Angular组件都包含在内。模板会使用。目前,我们尝试将这些常量手动分配给每个组件的控制器,但我们希望看看是否有办法简化这一点。

这是我们当前的实施

import TranslationKeys from '../keys/translationkeys';
import ApplicationConstants from '../constants/applicationconstants';

module.component('humbleComponent', {
    bindings: {},
    controller: () => {
        this.TranslationKeys = TranslationKeys;
        this.ApplicationConstants = ApplicationConstants;
    }
    template: '<div>{{ $ctrl.TranslationKeys.HELLO | translate }}</div>'
});

我们理想的结果将是:

  1. 消除重复分配TranslationKeysApplicationConstants
  2. 理想情况下,访问模板中的这些常量甚至不需要引用$ctrl。如
  3. import TranslationKeys from '../keys/translationkeys';
    import ApplicationConstants from '../constants/applicationconstants';
    
    module.component('humbleComponent', {
        bindings: {},
        controller: () => {
            //Look mom, no need to repeated keys/constants assignments here
        }
        template: '<div>{{ TranslationKeys.HELLO | translate }} <!-- No need to use $ctrl when accessing TranslationKeys--> </div>'
    });
    

    只是想知道实现上述目标的方法是什么。

0 个答案:

没有答案