【问题标题】:How to use knockout.js with CMS?如何在 CMS 中使用 knockout.js?
【发布时间】:2015-05-06 19:58:25
【问题描述】:

ko.js 网站上的所有示例都是手动构建的,模型和视图都是手工制作的。

如果我想在没有在后端创建数据绑定属性的站点上使用 ko.js,该怎么办?是否可以在文档中动态应用绑定?

否则,ko.js 似乎只支持自定义项目,而不是例如。 CMS 网站,例如 WordPress 或 Drupal(无需大量定制)。

假设我有一个从 CMS 呈现的漂亮表单,我想将它与 ko.js 一起使用以提供功能。怎么添加ko.js?

【问题讨论】:

  • 如果 CMS 足够“灵活”,KnockoutJS 非常适合 CMS。例如,我为(静态/无 DB)GetSimple CMS 编写了KO Site Settings 插件。鉴于所有 CMS 都支持钩子(我认为?),如果 1)您知道一些 PHP(如果需要,还有 SQL)来配置 KO 数据的发送/保存方式(在我的插件中,我将数据发送到 PHP 脚本AJAX)和 2)您可以在后端包含 Knockout 库,一切就绪。
  • 有趣。我在几个项目中使用了 GetSimple。你如何在GS中利用KO?或者您将如何在网站中使用它?就地/实时编辑?是否还有其他模块依赖于这个 ko 模块?
  • 好吧,我目前正在彻底检查它,因为 v0.1 是一种测试“草稿”,因此代码可读性不强。 this screenshot from the version I'm working on 上的设置列表是一个 observableArray;所以我用它在后端提供一个响应速度非常快的 UI。 KO 允许我处理几乎所有客户端(AJAX 数据发送;HTML 而不是 PHP 模板和 json 数据保存/检索)
  • 但是,如果你想进行现场编辑,你必须有条件地预渲染页面(如果用户登录到后端)并添加 ko 绑定,然后初始化它(这可能被证明是一项非常艰巨的任务)。如果您正在寻找与 HTML 分离的纯 JS 视图实现,您可能对React.js 更感兴趣(如果用户已登录,则更容易包含 JS 文件)。
  • 但是回到我最初的问题,即动态添加数据绑定属性。找到一篇关于它的文章:codeproject.com/Articles/138654/… 在那篇文章中,javascript 调用了自定义 setupbindings 函数,该函数添加了 ko.js 数据绑定属性,然后调用了 applybindings。这有点向后攀登,但它是完全禁止或合理的方法吗? (作为一种快速的'n'dirty方法)。

标签: javascript forms data-binding knockout.js content-management-system


【解决方案1】:

根据您的描述,我认为淘汰赛或任何 MVVM 绑定框架都不适合您。在我们进一步提供帮助之前,最好通过一些示例代码了解更多关于您正在尝试做的事情。

knout 页面上的示例有点简单,您可能需要查看http://www.scottlogic.com/blog/2014/07/30/spa-angular-knockout.html 以获得更深入的代码文章。

【讨论】:

  • 嗨!谢谢。我正在寻找的是具有表单元素依赖项,例如这被选中而不是禁用,或者如果选中计数 X 则禁用这些复选框。简而言之,能够计算检查值,根据它更改 UI,也许还可以进行一些输入验证。我用 jQuery 做的,但它变成了意大利面条。作为一个例子,我可以参考 jQuery DataTables 插件 html 表:只需包含它和 BOOM,你就有了一个很棒的表可以玩。 (虽然 ko.js 需要编程,但要说明你有你想要实现的标记)
猜你喜欢
  • 2013-10-05
  • 2012-09-22
  • 2016-04-27
  • 1970-01-01
  • 2023-04-02
  • 2017-06-26
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多