使用 AngularJS 和 Sitecore (SPA) 构建单页应用程序

Building a Single Page Application with AngularJS and Sitecore (SPA)

我想实现 Sitecore 应用程序(使用 angular js 的单页设计):

  1. 这可能吗?
  2. 如果可以的话,体验编辑器呢,会用吗?
  3. Sitecore 个性化怎么样?
  4. 我没有使用 angular js 的经验。我应该考虑什么来实现这个

我将使用 Sitecore 8。我发现了 this helpful blog,但正如他提到的,页面编辑器根本行不通

谢谢。

1.

是的,这是可能的,我在 Sitecore 7 中实现了一个 SPA,使用 front-end 的 AngularJSWebAPI 来提供来自 Sitecore Items 的数据,它们一起工作得非常好.

您可以考虑使用 Sitecore MVC Controllers,它与 WebAPI 一样有效。或者,如果您有时间学习一项新的 Sitecore 技术,您可以考虑使用 Sitecore's Entity Service。两者都适用于从 Sitecore 提供数据。

根据经验,我建议您制作控制器,负责 AnglarJS 使用的单一类型的数据。控制器传递的模型应该是精简的,只包含与控制器目的相关的数据。

2.

对于我的实施,体验编辑器无法工作,因为我使用 AngularJS 来操作和呈现数据。如果您不使用 AngularJS 提取数据,则可以使用 Sitecore Controls,但我认为如果不使用代码进行破解,这是不可能的。

3.

如果您使用 Sitecore 控件,应该可以通过体验编辑器进行个性化设置。通过内容编辑器和代码进行个性化将成为可能。我建议您像大多数 Sitecore 实施一样构建 SPA; Layout, Sublayout 等。您可以通过Controllers, Application Logic等中的代码实现个性化

4.

我也没有使用 AngularJs 的经验,但我从教程中学到了我需要知道的一切,其余的内容足够合乎逻辑,让您了解自己是否熟悉任何编程语言。我建议你通过这个 Codecademy Tutorial 完成练习 - 这是我学习的方式。

我还没有写一篇关于我如何实现它的博客,但 Dave Peterson 在 his experiences with SPA with Sitecore and AngularJs 上写了两篇博客,可能值得一读。

  1. 有可能
  2. 是的,您可以使用体验编辑器,但您必须以特定方式构建网站。不是 "normal" 方式。
  3. 同样,与体验编辑器一样,您可以使用它,但必须构建网站以适应它。
  4. 不确定 Angular - 我用过 backbone,但原理非常相似。

我有一篇博客 post 介绍我们如何为客户实现这一目标:http://www.sitecorenutsbolts.net/2015/12/07/Single-Page-Applications-in-Sitecore-Part-I/

阅读一下,它给出了在 SPA 中启用 Sitecore 应遵循的原则。

在 Sitecore 中一切皆有可能,但有些定制过于复杂以致于不实用。

您可以轻松构建具有以下限制的 SPA 应用程序:

  1. 显示各种视图

    a) 服务器生成的模板,或

    b) 具有 Sitecore-managed 内容的静态 .html 模板(通过自定义控制器或内容 API 检索为 json)并使用 [=50= 绑定到模板].

  2. 将个性化范围限制为仅内容

  3. 具有与 end-user 体验显着不同的体验或页面编辑视图。即使那样,这也需要单独的设计来创建和维护。

更具挑战性的是:

  1. 利用个性化动态显示不同的效果图。 Hide/show效果图等

  2. 让体验编辑器反映 SPA 体验的实际设计