如何在页面加载时在Blazor上加载Javacript和jquery UI

时间:2019-08-09 05:45:57

标签: blazor

我有一个管理模板,可以通过Blazor使用。我已经将所有js和jquery UI和CSS放在_host.chtml文件中。然后,我将模板切成导航,页眉和页脚之类的布局。

加载仪表板页面后,所有可启动js功能(如可折叠菜单,关闭按钮对话框)均不起作用。

但是,当我尝试单击页面中的href链接,然后单击后退按钮时,js功能就起作用了。

有什么想法吗?如何在组件和布局加载中加载所有jquery UI以在CSS内工作?

我尝试了JSinterop,但更多的是调用JS函数。如果您有一堆绑定到CSS的jquery Uis和bootstrap js,它将无法正常工作。

感谢有谁能指导我。

2 个答案:

答案 0 :(得分:0)

您可以通过注入IUriHelper来订阅更改的URL,然后调用一些JS来添加钩子。

但是,事情不会那么简单。当Blazor组件呈现时,它们可以选择创建HTML元素,例如,在对集合进行foreach以呈现数据时。在很多情况下,无需导航即可触发重新渲染(例如单击按钮)。

您需要使用@onmouseenter @onnouseout等事件来显式装饰组件,而不是使用单个函数将所有组件连接起来。

答案 1 :(得分:0)

好吧,我要做的是使用javascript interop在组件加载时调用theme.js。我有这个

Application.ScreenUpdating

然后,我删除了_host.chtml主文件上Assets / javascript / theme.js..etc等的引用。

它奏效了!哈哈