angularjs - Liferay7.0 portlet build with angular and typescript

标签 angularjs node.js typescript liferay portlet

我想知道,是否可以创建一个基于 angular(2, angular material v1.1.1) 和 typescript 的 liferay7.0 portlet。

我知道可以加载(例如)Angular 1.4 库并使用纯 javascript/angular 代码创建 portlet 来源:https://web.liferay.com/web/sampsa.sohlman/blog/-/blogs/trying-the-angularjs-with-liferay

我想实现的是创建一个基于 nodejs 包的 portlet。并用 gulp 或其他工具将其编译为 war 文件。

最佳答案

开放讨论。 我可以看到的可能方式,不管 Angular 2 & More 总体上专注于单页应用程序

  1. Liferay 7 提供 ES6 支持。您编写 ES6 代码,然后将其转换并作为模块安装。 Liferay IDE 中的 Gradle 有一个转译选项,导入是一个单独的包,可以在 OSGI 容器中的所有模块中使用。

  2. Liferay 7 引入了 Metal JS。 Metal JS 具有对 SOY 和 JSX 的模板支持。它再次具有相同的过程,编写 ES6 代码,编译它,安装模块并使用它。

  3. 在探索 liferay 源代码时,它使用 babel 而不是 typescript。有扩展名为 .es.js 的文件。 & Liferay使用的是AMD Module loader,所以需要有一个typescript & AMD Loader的task,然后才能传过去。这样的任务需要创建 & 然后加载模块可以通过这样的事情来完成

    要求('我的对话框',函数(myDialog){ //你的代码在这里 }, 函数(错误){ 控制台错误(错误); });

引用:- https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/liferay-amd-module-loader

  1. Liferay 推出了塞纳 JS。再次是它的 es6 转译文件,其中对应于我们定义页面的每个路由,在该页面中我们可以保留要加载的组件。

关于angularjs - Liferay7.0 portlet build with angular and typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41717670/

相关文章:

angularjs - 尝试验证至少有一个复选框被选中

javascript - 如何正确处理 Express 中的错误?

javascript - 为什么 `lodash.map([' A'], String.prototype.toLowerCase.call)` 不起作用?

javascript - 如何从 html 格式的文本创建元素?

javascript - 在 Polymer Web 组件中使用 AngularJS

AngularJS $http.post() 返回 404

typescript - 将属性名称动态添加到 typescript 界面

node.js - React + Material-UI - 警告 : Prop className did not match

reactjs - 创建自定义组件时如何使用 react-select 类型?

TypeScriptCompile 构建操作似乎没有做任何事情