我正在考虑用MEAN堆栈制作东西。我需要一种方法来编辑网站的内容,例如Wordpress提供(基本上是CMS)。
令人困惑的是CMS和Angular如何协同工作。我查看了名为Keystone的CMS,您必须在Node中设置一些路由等。您在Angluar中设置的路由会不会导致此崩溃?
在我使用的其他CMS中,视图的创建发生在服务器端。在Angular中,据我所知,您创建了一个HTML模板,您可以在角度控制器中填充数据。这似乎也可能在CMS和Angular之间崩溃。是这种情况吗?
我应该知道Angular和内容管理系统是否有任何其他怪癖或类似问题,或者将两者整合在一起通常没什么问题?
答案 0 :(得分:7)
meanjs.org对此有一个非常好的方法。安装meanjs。它附带一个sigin /注册,甚至允许您从vanilla安装创建文章。
简单地说,当您使用MEAN堆栈创建Web应用程序时,请将AngularJS视为" THE" app和node.js作为api。 如果您将Web应用程序构建为javascript应用程序(AngularJS),这恰好从服务器api(node.js)获取数据,那么您将开始了解如何正确使用MEAN堆栈。
首先:Angular将在$routeProvider中定义路线。首先在AngularJS中构建路由URL。他们是" THE"您的网络应用程序的路线。查看它的一个好方法是构建AngularJS部分,以便能够在必要时更改api服务器,甚至更改为另一种语言(PHP,python,go等)。
第二步:构建你的AngularJS,通过$resource与api进行通信。基本上$资源是使用restful路由调用api的简单方法。这个"宁静的路由"现在是需要"模仿/复制的路由"进入node.js路由的路由。
AngularJS路由(url)通常会匹配与node.js路由匹配的$ resource路由。
再次,看看meanjs.org,您将更好地了解如何正确组织"似乎" (实际上是)两个独立的应用程序。
答案 1 :(得分:3)
基本上,你需要三套路线(如果你便宜的话,你需要两套路线)。
从服务器上的一组路由开始,返回常规网页。忘了JavaScript。在这个阶段不要涉及Angular。
其次,在服务器上添加另一组路由,以粗体形式(例如JSON)返回数据。这通常是一个RESTful API。
第三,将Angular添加到客户端。当需要更新视图时,更新浏览器中的URL并使用Ajax命中RESTful API以获取填充它所需的数据。 (您希望将地址栏设置为的URL与您使用JS复制的第一组路由中的页面URL和RESTful路由中的数据相匹配。)
如果您以便宜的价格like Gawker did进行,那么您将跳过第一组路线并直接进入JS + REST方法。
答案 2 :(得分:3)
我创建了一个AngularJS + KeystoneJS Skeleton启动应用程序,如果您想将MEAN与KeystoneJS一起使用,应该可以帮助您入门:
答案 3 :(得分:1)
我认为你需要在MEAN堆栈开发环境中使用CMS。 你可以尝试在平均堆栈上有一些cms。
试试这个。
答案 4 :(得分:1)
我们一直致力于使用angular和keystonejs的项目。只需提供keystone中的默认模板布局,并在body标签中注入data-ng-view标签。为'/'。
的所有请求提供此模板然后正常编写角度应用以消耗端点。这些端点可以使用api中间件在keystone中完成。在routes/index.js
文件中,使用自定义端点的名称在routes对象中添加键/值对,然后导入包含端点函数定义的文件夹。
var routes = {
views: importRoutes('./views'),
api: importRoutes('./api')
};
exports = module.exports = function(app) {
app.get('/api/posts', keystone.middleware.api, routes.api.post.index);}
答案 5 :(得分:0)
我最近将我的博客迁移到MEANie - 我开发的轻量级自定义MEAN Stack CMS。
我为所有人提供了开源信息,并在http://jasonwatmore.com/meanie我的博客上发布了详细信息和设置说明。