【发布时间】:2020-08-22 21:11:49
【问题描述】:
我发现了很棒的包@angular/angular-flex 并且在第一刻一切都很好。然后我注意到默认断点与 Bootstrap4 的断点不同。但没问题:自定义断点。
但这里有一个问题:因为定义的断点被忽略了,我找不到解决方案。文档也有点混乱。有时我看到来自 BREAKPOINT 的导入,而下一次看到来自 BREAKPOINTS 的导入。现在什么是正确的?
但这不是战斗。战斗是让代码运行,我希望有人可以帮助我。我在我的项目中使用 Angular 9。
断点定义在:custom-breakpoints.ts
import { BREAKPOINT } from '@angular/flex-layout';
export const BS4_BREAKPOINTS = [
{ alias: 'xs', mediaQuery: 'screen and (max-width: 575px)' },
{ alias: 'sm', mediaQuery: 'screen and (min-width: 576px) and (max-width: 767px)' },
{ alias: 'md', mediaQuery: 'screen and (min-width: 768px) and (max-width: 991px)' },
{ alias: 'lg', mediaQuery: 'screen and (min-width: 992px) and (max-width: 1199px)' },
{ alias: 'xl', mediaQuery: 'screen and (min-width: 1200px) and (max-width: 5000px)' },
{ alias: 'lt-sm', mediaQuery: 'screen and (max-width: 575px)' },
{ alias: 'lt-md', mediaQuery: 'screen and (max-width: 767px)' },
{ alias: 'mdtest', mediaQuery: 'screen and (max-width: 767px)' },
{ alias: 'lt-lg', mediaQuery: 'screen and (max-width: 991px)' },
{ alias: 'lt-xl', mediaQuery: 'screen and (max-width: 1199px)' },
{ alias: 'gt-xs', mediaQuery: 'screen and (min-width: 576px)' },
{ alias: 'gt-sm', mediaQuery: 'screen and (min-width: 768px)' },
{ alias: 'gt-md', mediaQuery: 'screen and (min-width: 992px)' },
{ alias: 'gt-lg', mediaQuery: 'screen and (min-width: 1200px)' },
];
export const CustomBreakPointsProvider = {
provide: BREAKPOINT,
useValue: BS4_BREAKPOINTS,
multi: true,
};
并且模块声明:
import { CustomBreakPointsProvider } from './services';
import { BS4_BREAKPOINTS } from './services';
@NgModule({
imports: [
CommonModule,
FormsModule,
FlexLayoutModule.withConfig({ disableDefaultBps: true }, BS4_BREAKPOINTS),
...
],
declarations: [
...
],
providers: [
CustomBreakPointsProvider, // Adds breakpoints mediaQueries
],
})
然后我尝试在 HTML 中应用断点,例如:
<div class="col-md-6" [ngClass.mdtest]="{'alert alert-info': true}">
...
</div>
结果是ngClass.mdtest 被忽略。但是我做错了什么?
【问题讨论】:
标签: angular breakpoints angular-flex-layout