在 Angular 中为工具栏或文本编辑器创建单个配置文件
Create a single config file for Toolbar or TextEditor in Angular
我在 Angular 项目的多个组件中使用了以下 PrimeNG TextEditor 配置。我想在一个文件中定义这个配置并从所有必要的组件中检索它,而不是在组件上定义多次。执行此操作的最佳方法是什么?创建一个新组件?我知道可以通过创建组件来实现,但我不确定这是否是最佳实践。有什么帮助吗?
toolbarOptions: any = [
[{ 'header': [3, false] }],
['bold', 'italic', 'underline', 'strike'], // toggled buttons
['blockquote', 'code-block'],
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
[{ 'indent': '-1' }, { 'indent': '+1' }],
[{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme
[{ 'align': [] }],
['clean'] // remove formatting button
];
一个好主意是将 textEditor 包装在一个新组件中,并在其中定义您的 toolbarOptions。
如果您需要使用您的新组件,但在编辑器中包含或排除某些功能,您可以让您的新组件采用 @Input() toolbarOptions
覆盖特定 use-cases 的默认配置.
请记住,如果您的组件要以反应形式使用,它必须实现 ControlValueAccessor
接口。
选项本身可以在服务中定义(一般组件应该尽可能小)。您甚至可以创建一个函数,该函数采用一个枚举来定义您需要的配置(如果您需要多个配置)。
但是仅仅为了 return 数组的唯一目的而提供服务有点矫枉过正。
另一种选择是将 const 简单地导出到一个单独的文件中,例如 export const toolbarOptions = ....
,然后您可以将其导入到您需要它的组件中。您还可以创建一个带有静态函数的 class 到 return 选项。
在文件中使用您的工具栏配置信息创建摘要 class,例如:
export abstract class ToolbarConfig {
static toolbarOptions: any = [
[{ 'header': [3, false] }],
['bold', 'italic', 'underline', 'strike'], // toggled buttons
['blockquote', 'code-block'],
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
[{ 'indent': '-1' }, { 'indent': '+1' }],
[{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme
[{ 'align': [] }],
['clean'] // remove formatting button
];
};
确保 toolbarOptions
static
。
然后将您的配置导入任何文件,例如:
import { ToolbarConfig } from '../configs/app.config';
然后在任何地方使用 toolbarOptions
,就像这样:
ToolbarConfig.toolbarOptions
我在 Angular 项目的多个组件中使用了以下 PrimeNG TextEditor 配置。我想在一个文件中定义这个配置并从所有必要的组件中检索它,而不是在组件上定义多次。执行此操作的最佳方法是什么?创建一个新组件?我知道可以通过创建组件来实现,但我不确定这是否是最佳实践。有什么帮助吗?
toolbarOptions: any = [
[{ 'header': [3, false] }],
['bold', 'italic', 'underline', 'strike'], // toggled buttons
['blockquote', 'code-block'],
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
[{ 'indent': '-1' }, { 'indent': '+1' }],
[{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme
[{ 'align': [] }],
['clean'] // remove formatting button
];
一个好主意是将 textEditor 包装在一个新组件中,并在其中定义您的 toolbarOptions。
如果您需要使用您的新组件,但在编辑器中包含或排除某些功能,您可以让您的新组件采用 @Input() toolbarOptions
覆盖特定 use-cases 的默认配置.
请记住,如果您的组件要以反应形式使用,它必须实现 ControlValueAccessor
接口。
选项本身可以在服务中定义(一般组件应该尽可能小)。您甚至可以创建一个函数,该函数采用一个枚举来定义您需要的配置(如果您需要多个配置)。
但是仅仅为了 return 数组的唯一目的而提供服务有点矫枉过正。
另一种选择是将 const 简单地导出到一个单独的文件中,例如 export const toolbarOptions = ....
,然后您可以将其导入到您需要它的组件中。您还可以创建一个带有静态函数的 class 到 return 选项。
在文件中使用您的工具栏配置信息创建摘要 class,例如:
export abstract class ToolbarConfig {
static toolbarOptions: any = [
[{ 'header': [3, false] }],
['bold', 'italic', 'underline', 'strike'], // toggled buttons
['blockquote', 'code-block'],
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
[{ 'indent': '-1' }, { 'indent': '+1' }],
[{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme
[{ 'align': [] }],
['clean'] // remove formatting button
];
};
确保 toolbarOptions
static
。
然后将您的配置导入任何文件,例如:
import { ToolbarConfig } from '../configs/app.config';
然后在任何地方使用 toolbarOptions
,就像这样:
ToolbarConfig.toolbarOptions