可定制/可设置的UI

时间:2014-07-20 14:26:56

标签: javascript html css angularjs customization

我想为我的用户提供自定义网站外观的功能。

我给他们一个颜色选择器来选择配色方案。我想动态生成几种匹配颜色并应用它们。

我的问题是:

1.。)如何根据选择的颜色生成配色方案? (一些匹配的颜色和背景的对比色)

2.。)实现可编程接口的最佳实践是什么?

我正在编写一个AngularJS SPA应用程序,其中包含纯HTML,REST API作为后端。

现在我的第二个问题是,我正在检索颜色设置并将它们应用于身体。

<body style="background:color:{{bgcolor}}; color:{{fgcolor}}">

我正在寻找更优雅的东西。

1 个答案:

答案 0 :(得分:1)

你可以像上面那样用ngStyle做到这一点......但正如你所说,它不是很优雅。

简单的事实是,除了ngStyle指令本身之外,AngularJS本身并没有真正解决这个问题。然而,虽然我还没有真正看到一个&#34;最佳实践&#34;为此,你可以从Drupal&#34; Color&#34;模块,它是其基础/核心模块之一。你可以很容易地在Angular中做同样的事情。

这样做是回到样式表,我假设你跳过它,因为它似乎不是一个动态的明显解决方案。但他们有一个聪明的答案。在一段代码中,在用户选择颜色后,他们会写出一个样式表,其文件名具有唯一的ID。他们将这些内容放在保存其他用户上传资源的目录中,因此他们不会与核心站点代码混合(最小化潜在的攻击向量)。然后,他们只需要在页面中使用一个简单的规则来包含样式表本身。

您可以使用Angular轻松模拟所有这些,当然,您需要服务器的帮助。但关于它的好处是它更容易维护。而不是必须“洒”&#34; ngStyle指令遍布整个地方(一个在你想要设置的所有样式上),并且可能与你想要对其中一些元素做的其他事情发生冲突,样式表可以完全按照它应该的方式工作:使用类来定位具体要素。你可以制作一个易于维护的模板样式表,这样就很自然了......而最好的部分是,很容易将一切都搞定。