我试图通过使用自定义布局像这样在vaadin角JS应用程序集成整合的角度JS:vaadin:使用自定义布局
VerticalLayout mainLayout = new VerticalLayout();
mainLayout.setMargin(true);
mainLayout.setWidth("1380px");
setCompositionRoot(mainLayout);
Panel panel = new Panel();
CustomLayout layout = null;
try {
String dynamicHtml = "<div ng-app=\"app\">..........</div>";
layout =
new CustomLayout(new ByteArrayInputStream(dynamicHtml.getBytes()));
} catch (IOException e) {
logger.error("could not create custom layaout", e);
}
panel.setContent(layout);
mainLayout.addComponent(panel);
importJs();
public void importJs() {
String PATH_TO_JS_SCRIPT = jsURL+"?tata=" + new Date();
String script = "try{var fileref=document.createElement('script');";
script += "fileref.setAttribute(\"type\",\"text/javascript\");";
script += "fileref.setAttribute(\"src\", \"" + PATH_TO_JS_SCRIPT +
"\");";
script += "document.getElementsByTagName(\"head
\")[0].appendChild(fileref);}catch(e){alert(e);}";
Page.getCurrent().getJavaScript().execute(script);
}
我导入JS脚本使用importJs方法。 我第一次访问页面时,js文件被加载并且工作。 第二次,它不起作用。 就好像脚本没有被导入。 我没有看到我的代码有什么问题? 使用Javascript注释我有同样的问题。 我使用 vaadin 7.6.5 java 7
谢谢德拉甘的回答: 为了我们每一个显示我使用的页面时excecute这个脚本。 我已阅读关于Vaangular。 我试过了。但是这取决于java 8. 我使用的是java 7. – benji
无论如何CustomLayout不会帮助你。您可以尝试将Angular组件集成为其他任何Java脚本组件,如https://vaadin.com/docs/-/part/framework/gwt/gwt-javascript.html中所述。另外,我不完全确定Vaangular是java 8只兼容。你确定吗? –