Angular 在Ag寄存器参数之前调用Ag-param()

Angular 在Ag寄存器参数之前调用Ag-param(),angular,ag-grid,ag-grid-angular,scss-mixins,Angular,Ag Grid,Ag Grid Angular,Scss Mixins,我尝试用新的主题mixin为Ag网格生成一个自定义主题。但我总是会遇到以下错误: ERROR in ./src/app/style.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js?

我尝试用新的主题mixin为Ag网格生成一个自定义主题。但我总是会遇到以下错误:

ERROR in ./src/app/style.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--15-3!./src/app/style.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

undefined
              ^
      Ag-param() called before ag-register-params
      in C:\Development\WebApp\node_modules\@ag-grid-enterprise\all-modules\dist\styles\mixins\_ag-theme-params.scss (line 191, column 16)

风格:

@import "../../../../node_modules/@ag-grid-enterprise/all-modules/dist/styles/ag-grid.scss";
@import "../../../../node_modules/@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material/sass/ag-theme-material-mixin";

.ag-theme-custom-test {
  @include ag-theme-material();
}

我已经找到了解决我问题的办法。主题的生成必须在应用程序加载时完成。我已经将我的Ag网格主题外包到另一个将被导入的文件中


旧的主题化文件:

@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-grid.scss';
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material/sass/_ag-theme-material-mixin.scss';

.ag-theme-material{
    @include ag-theme-material(
        (
            background-color: green
        )
    );
}
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-grid.scss';
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material/sass/_ag-theme-material-mixin.scss';

.dark-theme .ag-theme-material{
    @include ag-theme-material(
        (
            background-color: green
        )
    );
}
Old styles.scss(最初加载->参见angular.json配置)


新的主题化文件:

@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-grid.scss';
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material/sass/_ag-theme-material-mixin.scss';

.ag-theme-material{
    @include ag-theme-material(
        (
            background-color: green
        )
    );
}
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-grid.scss';
@import '~@ag-grid-enterprise/all-modules/dist/styles/ag-theme-material/sass/_ag-theme-material-mixin.scss';

.dark-theme .ag-theme-material{
    @include ag-theme-material(
        (
            background-color: green
        )
    );
}
New styles.scss(最初加载->参见angular.json配置)



我希望我能帮助其他开发者。如果您有问题,请告诉我。

您找到解决方案了吗?我也有类似的问题,我用不同的类实现了不同的主题,并在那里做了一些重写。@MinsikPark你在这方面找到什么了吗?我刚收到同样的问题。@chris eikrem看我的答案。我已经找到了解决问题的办法。我把你的问题投了赞成票,因为我今天遇到了这个问题。我希望能够调用类似于
行高的东西:agparam(网格大小)*5但得到此错误:
SassError:“在ag寄存器参数之前调用ag-param()”╷ 66│     $已解决:-未选中ag参数($name)这与
@import“~@ag grid community/core/dist/styles/mixins/_ag-theme-params.scss”是一致的在顶部,如图所示。我不明白你的答案。如果你能详细说明,我将不胜感激!谢谢。我的问题是我的Ag网格主题化文件最初没有处理。据我所知,主题化文件必须在angular.json文件中声明,或者导入一个在那里声明的文件(在我的例子中是styles.scss)。但请记住,它必须在文件顶部导入,而不是在嵌套类中导入!如果你准备一个例子,我会看一看。