【发布时间】:2013-07-28 01:59:26
【问题描述】:
我正在使用twitter's typeahead.js,我想知道是否可以修改hogan.js 以使用{{}} 以外的其他内容?
我现在正在查看minified code,但我不知道要为这么简单的东西更改什么。进行查找和替换会破坏它。
我问这个主要是因为我使用的是 Angular JS,但 twitter 的 typeahead 需要一个模板引擎,导致 hogan 和 angular 的 {{}} 发生冲突。更好的解决方案是简单地修改 Angular JS(我知道它不是模板引擎)并放弃 Hogan 以符合以下标准:
只要遵循以下 API,任何模板引擎都可以使用 typeahead.js:
// engine has a compile function that returns a compiled template
var compiledTemplate = ENGINE.compile(template);
// compiled template has a render function that returns the rendered template
// render function expects the context to be first argument passed to it
var html = compiledTemplate.render(context);
【问题讨论】:
-
如果你想改变 Angular 中的大括号,只要按照这个:docs.angularjs.org/api/ng.$interpolate,不需要修改代码;)
-
@meiryo,您是如何在 Angular 应用程序中使用 Typeahead.js 的?因为我正在尝试包含它,但我不知道如何继续(我已经使用它但在 jQuery 中)。提前感谢您的帮助:)
-
@user1651994 我将 Hogan.js 分隔符更改为
<% %>。我所做的只是查找和替换"{{"和"}}"。不再与角度冲突!让我知道您是否可以使用 Angular 作为模板引擎...不太喜欢仅将 Hogan 包含在一个简单的预输入框中。 -
@meiryo 实际上我还没有在我的项目中使用 Typeahead.js。在您的项目中如何使用它?是否有自定义指令,或者您只是使用 jQuery 代码? (只是要知道,因为我依赖于现有的 API,所以我不能使用当前版本,并且数据格式与 typeahead Datum 所需的格式不匹配......似乎在客户端中构建数据集 - side 将在 0.10 版本中实现)
-
@user1651994 你需要加载 jQuery,然后必须创建一个指令并将 typeahead 放入:pastebin.com/ALQYdfrk
标签: angularjs mustache typeahead.js hogan.js templating-engine