问题标签 [angular-component-life-cycle]
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 7从Kendo UI日期选择器获取选定日期的值
我的 App Component.html 有一个基本的导航和一个日期选择器,就像这样......
component.ts 的设置方式如下:
我有一些页面有一个调用服务的网格控件,但是日期当前是硬编码的,这一切都很好。我希望能够根据从上述日期选择器中选择的日期刷新网格数据,本质上,我将单击数据选择器,发出的值将通过网格控制器传递给组件中的方法。
带网格的控制器:
angular - ng-content 里面的组件被实例化了两次
我正在使用 Angular 4,并且我有一个组件“X”,它基本上是一个折叠扩展组件。它包装了提供给它的所有内容,并在单击时折叠和展开它。它看起来类似于下面的一个。
我有另一个组件“Y”,我将它放在“X”组件中,例如:
现在我已经意识到“Y”组件被实例化了两次,即构造函数ngOnInit、ngOnChanges 一切都被调用了两次。
使用会不会有问题<ng-content>
(我仍然不完全确定)。如果是,我应该如何处理这个问题,只调用一次我的“Y”组件,因为我只需要将组件“Y”包装在“X”中。
编辑:我错过了在问题的前面添加我正在使用ngxPermissions
库有条件地显示“”。所以它更像:
angular - NgOnInit 调用了两次
我有一个位于警卫后面的页面,在 ngOnInit 上,我通常订阅上下文管理服务器,该服务器首先包含创建订阅的帖子,然后打开与服务器的 websocket 连接。在我的本地副本上,一切似乎都运行良好......但最近我注意到在生产版本中它有时会订阅两次,这让我相信 ngOnInit 被调用了两次。我不确定为什么会这样。
目前我的解决方案是将此订阅代码移动到服务中,并从应用程序组件 ngOnInit 调用一次。
angular2-routing - 在组件之间切换后进行多次http调用
我有一个查询对我来说有点复杂,但请询问我是否需要更多详细信息...
Angular 版本:8。主题:切换组件时的问题是循环的。
就像来自组件 A. -> B -> A -> B
我的问题的简要细节
从“A”组件中,我选择了几个员工,然后单击应用过滤器按钮,以便我可以切换到 B 组件。
在每个员工复选框上单击使用服务发出事件,以便从“B”组件中我应该能够获取那些选定的员工并执行进一步的逻辑(如 API 调用)
从 A 切换到 B 正在按预期工作,因为根据选定的员工,我正在访问 API 以获取他们的详细信息。
但是要重置选定的员工,我将重定向回 A 组件,以便我可以添加更多或删除员工......
现在我面临的问题是
因为我在组件 B 中有逻辑,所以可以访问 API 并获取员工详细信息。
问题是在每次选择从组件“B”返回一轮后,一次点击进入 API 以获取更新的 emp 详细信息。
我知道它正在发生在 EvenEmitter 的 bcz 中,但是最好的解决方案是什么,这样在每个事件发出时它都不应该从“A”进行 API 调用,直到我不在组件 B 中。
angular - 在 ngAfterViewInit() 中合并两个 observable
此错误与在 ngOnInit() 中初始化的 this.events$ 有关
这个问题与其他问题非常相似,但在执行时间方面仍然略有不同。
我有简单的 zip 来合并两个可观察的,例如:
问题是我不想在 ngOnInit() 中执行它,它完全可以正常工作。我的意思是在加载数据时在 ngAfterViewInit() 中执行它。应用流程:
通过 ngOnInit() 加载组件中的数据。
通过服务从搜索栏中发出值,如下所示: https ://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service
从 ngAfterViewInit() 中的服务获取值
请注意,当我简单地对 observable 执行 subscribe() 时,这是可行的:
不幸的是,我需要合并来自搜索输入的 observable 和 observable 的数据源,所以我试图将它们结合起来:
但它仍然没有被解雇。为什么它在 ngOnInit() 中有效,但在 ngAfterViewInit() 中无效,简单的订阅是在 ngAfterViewInit() 中动态发出的?有什么解决办法吗?
编辑:
我注意到的是,在 ngOnInit() 中使用 zip 会获取值,直到第一次删除字符,例如:
- 插入字符:
- 输入:'a' -> 发出'a'
- 输入:'ab' -> 发出'ab'
- 输入:'abc' -> 发出'avc'
- 删除 1 个字符:
- 输入:'ab' -> 没有发射,
- 重试:
- 输入:'abc' -> 没有发射,
angular - 初始化两个相同组件时,服务中的 Angular 行为主题变得混乱
我创建了一个名为侧边栏的组件。该组件有 2 个输入,sideBarMode 和 sideBarSide。在 app.component 我像这样添加这个组件
<sidebar [sideBarMode]="'sliding'" [sideBarSide]="'right'"></sidebar>
。
当我将上述内容用作一个标签时,它按预期工作。但是,当我做类似的事情时
它们被渲染但具有相同的类,尽管如果我将控制台记录正在传递的 ngOnInit 中的值,它们会正确显示。EG 一个 div 应该显示滑动作为一个类,而另一个显示为停靠。相反,它们都显示为停靠。
这是 HTML 模板。
这就是我检查模式的方式,无论它是否停靠在 TS 文件中,我从 ngOnInit 调用此方法。
如您所见,如果是滑动,我将 observable 设置为 true,然后在 ngOninit 中将该值分配给 barSliding,该值在 HTML 模板中用于确定类名。
停靠的是正确的,但是,滑动的正在获取停靠的属性……为什么?
angular - ngDoCheck (Angular9) 的真实用例
我是 Angular 的初学者并自学,我一直坚持使用ngDoCheck 生命周期方法
根据文档:
检测 Angular 无法或不会自行检测到的更改并采取行动。
父组件:
父视图:
子组件
据我所知,使用这种生命周期方法可以获取更深层次的最新变化,而 ngOnChanges 无法检测到更深层次的输入属性变化。
简单来说,ngOnChanges 只会检测到属性的变化,只有属性的引用发生了变化。
在上面的示例中,ngDocheck 生命周期方法没有做任何事情来获取属性的最新更改。但相反,变更检测有助于获得更深层次的最新变更
我想知道使用 ngDoCheck 生命周期方法的确切用例。
angular - 如果我使用 ngOnInit 方法而不实现 OnInit 接口会发生什么
谁能告诉我如果我不实现onInit接口并且仍然在组件中使用ngOnInit组件生命周期会发生什么?
因为我在没有实现接口的情况下使用了 ngOnInit生命周期钩子,所以它对我来说也是一样的。
所以只是想了解为什么我应该实现一个接口?
javascript - 在我的新 div 中创建的 angular 指令加载组件而不是在外部
我有各种工具提示,所以我决定使用directive
. 它工作正常。但问题是它没有加载到主机内部或附加div
。不加载component
创建的子 div,我发现没有用。
有人请帮帮我吗?
这是我的指令:
我如何在我创建的孩子中加载组件?提前致谢