gpt4 book ai didi

javascript - Angular2中如何访问注解内的组件?

转载 作者:搜寻专家 更新时间:2023-10-30 21:42:57 25 4
gpt4 key购买 nike

我只是想了解生命周期并尝试在加载组件之前执行一些逻辑,所以我找到了 CanActivate 注释。

我在组件中有一个函数要调用,所以我需要该组件;我已经注入(inject)了它......它似乎过于复杂。

// HomeComponent Component
@Component({
selector: 'HomeComponent',
template: '<h2>HomeComponent Us</h2>'
})
@CanActivate((next,prev) => {

let injector: any = Injector.resolveAndCreate([HomeComponent]);
let theComponent: HomeComponent = injector.get(HomeComponent);

return theComponent.canActivate(next,prev)
})

class HomeComponent {
data = {}
myresolver: any

constructor() {
console.log("in constructor", this.data)
}

setData(data: any) {
this.data = data
}

canActivate(nextInstr, currInstr) {
console.log("in my resolver");
var that = this;
return new Promise(function(resolve, reject) {
setTimeout(function() {
var data = { data: "Aaron" };
that.setData(data)
resolve(data);
}, 2000)
});
}

}

最佳答案

事实上你不能,因为注释中的处理是在实例化(或不实例化)组件之前调用的。

我猜你想在 Angular2 中使用 Angular1 路由器的解析功能。事实上,目前还不支持这样的功能。有关详细信息,您可以在 Angular github 中查看此问题:

以下两个链接为您的用例提供了一些解决方法:

希望对你有帮助,蒂埃里

关于javascript - Angular2中如何访问注解内的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com