vaadin:使用自定义布局集成 angular js
vaadin: integrate angular js using custom layout
我尝试通过使用自定义布局在 vaadin 中集成 angular js 应用程序:
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);
}
我使用 importJs 方法导入脚本 js。
我第一次访问该页面时,js 文件已加载并且可以正常工作。
第二次,它不起作用。
就好像没有导入脚本一样。
我没有看到我的代码有什么问题?
使用 Javascript 注释我有同样的问题。
我用
vaadin 7.6.5
java7
在 CustomLayout 中插入 angular 代码是个坏主意。
我建议阅读文本:Vaadin and AngularJS - happy together。
有一个附加组件可以让您结合 Vaadin 和 AngularJS 的优点:Vaangular
Js 文件只被包含一次,并且在页面的生命周期中只被包含一次。
每次显示我使用的页面时执行此脚本:
if(typeof angular != 'undefined'){
angular.bootstrap(document.getElementById('swdId'), ['app']);"
}
问题已解决
我尝试通过使用自定义布局在 vaadin 中集成 angular js 应用程序:
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);
}
我使用 importJs 方法导入脚本 js。 我第一次访问该页面时,js 文件已加载并且可以正常工作。 第二次,它不起作用。 就好像没有导入脚本一样。 我没有看到我的代码有什么问题? 使用 Javascript 注释我有同样的问题。 我用 vaadin 7.6.5 java7
在 CustomLayout 中插入 angular 代码是个坏主意。
我建议阅读文本:Vaadin and AngularJS - happy together。
有一个附加组件可以让您结合 Vaadin 和 AngularJS 的优点:Vaangular
Js 文件只被包含一次,并且在页面的生命周期中只被包含一次。 每次显示我使用的页面时执行此脚本:
if(typeof angular != 'undefined'){
angular.bootstrap(document.getElementById('swdId'), ['app']);"
}
问题已解决