问题标签 [angular2-styleguide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 数据服务应该放在 Angular 应用程序中的什么位置?
我一直在质疑自己将与 API 对话的服务放在我的 Angular 应用程序中的正确位置。最初,我认为最好的位置应该在功能模块中,但我对此表示怀疑。
假设我有延迟加载的模块FeatureA,由于 API 端点,它在我的数据库中对一个表进行了 CRUD,所以我将FeatureAService作为我的FeatureAModule的提供者。
但是假设我有另一个需要读取信息的延迟加载模块FeatureB 。我已经有一个功能可以帮助我在我的FeatureAService中做到这一点,所以我可以重用它,但我需要提供服务。
我可以将我的FeatureAModule导入到我的FeatureBModule 中,但我认为这也会带来FeatureA的所有组件。我可以将我的FeatureAService放在我的FeatureA和FeatureB之间共享的第三个模块中,但这引出了一个问题:是否应该将所有数据服务放在所述模块中,以便它们可以在整个应用程序中使用?
angular - Angular 5 Core 模块服务未在功能模块中定义
我正在遵循 Angular 5 项目中的样式指南,并且正在尝试实现样式指南中最难的部分(核心/共享模块)。所以我希望我的核心模块提供一个在我的所有应用程序中使用的单例服务。该服务只是 LocalStorage 的包装器。因此,我创建了 CoreModule,并将服务添加到 providers 数组中,如下所示:
核心模块
我的懒惰组件
之后,我想在一个特性模块中使用 LocalStorageService,所以我导入了它,并使用普通的 DI 方式将它注入到构造函数中。不幸的是我得到TypeError: this.localStorageService is undefined
我错过了什么?提前致谢
angular - 简单应用程序的 Angular 文件夹/文件结构(样式指南)
我正在研究 Angular 的风格指南,在开发一个简单的应用程序时遇到了一些疑问!该应用程序是控制用户的证券交易所股票。所以需要:
- 用于验证用户身份的模块(登录、注册和重置密码)
- 一个模块,其中一个组件显示所有用户的股票,另一个组件用于添加新股票
- 用于编辑用户个人资料的模块
身份验证模块将具有与应用程序的其余部分不同的布局(身份验证将只有一个集中式表单,而应用程序的其余部分将有一个导航栏作为菜单)。
问题 1:我将在 Auth 模块中创建一个名为 Layout 的组件,并将其仅用于身份验证视图;我在哪里创建布局组件或模块(我不知道是哪一个)以与应用程序的其余部分一起使用?我应该创建一个核心模块并在这个模块内创建一个布局模块吗?我应该创建一个核心模块和一个布局模块(核心之外)吗?
问题 2:我应该在哪里创建用于身份验证的防护?此守卫将用于股票和配置文件模块,以避免未登录的用户
问题 3:您将如何构建这个关于文件夹和文件的简单项目?
angular - 是否可以在 Angular2+ 中为模块及其所有组件注入 CSS 框架?
我正在开发一个包含 2 个模块的应用程序,一个模块用于管理布局,另一个模块用于用户布局。我打算使用 2 个不同的框架。一个用于管理员,另一个用于用户。
一个框架会影响另一个框架,所以我不能将两者都保存在全局的 .angular-cli.json 中。那么有没有可能为一个模块使用一个框架而另一个模块使用另一个框架。在不影响样式的情况下。
angular - 是否有为 @Input 属性使用角括号绑定表示法的约定?
可以通过以下两种方式之一将纯字符串值绑定到组件的@Input
属性中:Angular
或者:
他们中的一个通常比另一个更受欢迎吗?(有例外吗?)
是否有关于此的一般约定?这在任何 Angular 风格指南中都有解决吗(在官方风格指南
中找不到任何内容)。
angular - Angular 功能模块与共享模块
假设我有一个功能模块person和一个功能模块cars。现在我想显示一个包含所有人的表格。单击表格行时,表格应展开显示包含一个人的所有汽车的汽车表格。现在,当单击汽车行时,我希望汽车表展开显示所有拥有此类汽车的人。
因此我有一个循环依赖,因为person-table -> car-table -> person-table来自两个不同的功能模块。是否可以将 person-table 和 car-table 移动到 SharedModule 以填充用例?
angular - Angular - 我什么时候应该使用子组件而不是传递@input
我和我的团队目前正在使用 Angular (v8.x) 制作一个组件库。我们希望建立一些内部管理规则并保持我们的组件界面直观(即输入的一致命名和模式的使用)。
我们在使用@Inputs 和嵌套组件方面发现了两种思想流派。
可以使用以下(淡化)示例来描述我们的 deema
示例组件 1:
示例组件 2:
在示例 1 中,组件有一个 @Input,它显示和隐藏在模板中硬编码的子组件。
在示例 2 中,组件作为子组件添加(或不添加)(通过 ngContent)。
我试图找到一个断言,它指示何时使用一种模式而不是另一种模式。我知道可能没有。我目前的想法是,如果您的组件有 n 个子级或 n 个子级类型,请使用组件嵌套。如果组件只有一种类型的子组件,请使用输入,并将您的子组件包含在父组件模板中。
我检查了角度风格指南,但找不到任何特定于这个问题的东西。
有谁知道任何资源或有过这种区分的经验?我想听听您如何以及为什么以一种或另一种方式实施它。
编辑:具体来说,我想结束以下陈述:
“在...时使用@Inputs 覆盖嵌套组件” 和 “在...时使用@Inputs 上的嵌套组件”
编辑2:感谢我可能无法正确表达自己。使用我们的组件库以及其他组件,我们正在包装现有的角材料组件,例如mat-input
. 我们有一个组件,它在我们的模板中包装了 mat-form-field、mat-hint 和 mat-input 组件。我们的组件如下所示:
这个组件有一些我们不希望显示提示的用例。因此,只要您提供提示字符串,our-input
就会显示our-hint
组件(嵌套在模板内)。
但我也可以将组件实现为这样工作:
开发人员可以完全省略该our-hint
组件来实现相同的目标。
我所追求的是一些明确的最佳实践资源,关于何时使用一种方法而不是另一种方法(如果有的话)或您采用哪种方法的原因。
angular - Angular 将组件的 css 文件导出到资产中
最近我看到了一个新的 Angular 项目(v10),它的结构很奇怪。业主表示他们决定将所有 css 组件文件放入一个资产文件夹中,如下例所示:
我对此非常好奇,因为我一直认为将组件的 css 分离到另一个文件中是一个坏主意,但我没有找到任何关于此的文档或建议。
将组件的 css 文件移动到 assets 是一种好习惯吗?