首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义类注释在更新到NG9后的生产构建中不起作用

自定义类注释在更新到NG9后的生产构建中不起作用
EN

Stack Overflow用户
提问于 2020-03-17 12:36:37
回答 1查看 292关注 0票数 3

在产品构建中,在更新到角9之后,根本不调用自定义注释。

当使用ng服务测试它时,它会像往常一样工作。

控制台中没有错误。

我的自定义注释:

代码语言:javascript
运行
复制
@CustomSmartForm('calculatorForm')
@Component({
selector: 'calculator-form',
...
})
export class CalculatorFormComponent implements OnInit {...}

每次在组件上设置注释时都应该调用的函数:

代码语言:javascript
运行
复制
import * as _ from 'lodash';

export function CustomSmartForm(formId: string) {
    return (target: any) => {
        const glb: any = window;
        glb.__smart_form_definitions = glb.__smart_form_definitions || {};
        const scope = glb.__smart_form_definitions;
        _.set(scope, formId, target);
    };
}

但并不是所有的组件都需要它,我也不知道为什么。

这种情况只发生在生产构建中。

该函数使用lodash在路径formId上的对象范围上设置类定义。

在这个对象中,我尝试通过formId在下面的函数中检索类定义:

代码语言:javascript
运行
复制
function getCustomFormDefinition(formId: string): any {
    const scope = (<any> window).__smart_form_definitions;
    return scope && scope[formId];
}

依赖项和开发依赖项:

代码语言:javascript
运行
复制
"dependencies": {
    "@angular/animations": "^9.0.6",
    "@angular/cdk": "^9.1.2",
    "@angular/common": "^9.0.6",
    "@angular/compiler": "^9.0.6",
    "@angular/core": "^9.0.6",
    "@angular/forms": "^9.0.6",
    "@angular/localize": "^9.0.6",
    "@angular/platform-browser": "^9.0.6",
    "@angular/platform-browser-dynamic": "^9.0.6",
    "@angular/router": "^9.0.6",
    "@consultingwerk/smartcomponent-library": "^1.12.0",
    "@consultingwerk/smartcomponents-jsdo-core": "^6.0.8",
    "@fullcalendar/core": "^4.4.0",
    "@progress/kendo-angular-buttons": "^5.2.3",
    "@progress/kendo-angular-charts": "^4.1.3",
    "@progress/kendo-angular-common": "^1.2.2",
    "@progress/kendo-angular-dateinputs": "^4.2.2",
    "@progress/kendo-angular-dialog": "^4.1.3",
    "@progress/kendo-angular-dropdowns": "^4.2.5",
    "@progress/kendo-angular-excel-export": "^3.1.3",
    "@progress/kendo-angular-grid": "^4.6.4",
    "@progress/kendo-angular-inputs": "^6.5.0",
    "@progress/kendo-angular-intl": "^2.0.1",
    "@progress/kendo-angular-l10n": "^2.0.1",
    "@progress/kendo-angular-layout": "^4.2.3",
    "@progress/kendo-angular-menu": "^2.0.2",
    "@progress/kendo-angular-pdf-export": "^2.0.3",
    "@progress/kendo-angular-popup": "^3.0.5",
    "@progress/kendo-angular-ripple": "^2.0.1",
    "@progress/kendo-data-query": "^1.5.2",
    "@progress/kendo-drawing": "^1.6.0",
    "@progress/kendo-theme-bootstrap": "^4.11.0",
    "@progress/kendo-theme-default": "^4.13.0",
    "angular2-text-mask": "^9.0.0",
    "angular2-uuid": "^1.1.1",
    "bootstrap": "^3.3.7",
    "chart.js": "^3.0.0-alpha",
    "core-js": "^2.6.0",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "jquery": "^3.3.1",
    "moment": "^2.24.0",
    "ng2-ace-editor": "^0.3.9",
    "ngx-file-drop": "^8.0.8",
    "primeicons": "^1.0.0",
    "primeng": "^9.0.0",
    "quill": "^1.3.7",
    "rxjs": "^6.5.4",
    "rxjs-compat": "^6.3.3",
    "ts-metadata-helper": "0.0.4",
    "tslib": "^1.10.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.900.6",
    "@angular/cli": "~9.0.6",
    "@angular/compiler-cli": "^9.0.6",
    "@angular/language-service": "^9.0.6",
    "@types/jasmine": "~3.3.1",
    "@types/jasminewd2": "~2.0.6",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.1.3",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.1",
    "tslint": "~5.11.0",
    "typescript": "^3.7.5"
  }

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 09:23:22

我使用这里描述的解决方法解决了这个问题:角/角#35314

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60722582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档