- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 jQuery 1.8.2 和 Dust.js v1.1.1 在 JavaScript 应用程序中实现 MVC 样式的模板。当我使用 {@gt}
逻辑助手时,我收到以下控制台错误:
Uncaught TypeError: Cannot read property 'gt' of undefined
我相信我的模板中使用了正确的语法:
<ul class="listview">
{#seasons}
<li>
<h3>{name}</h3>
<p class="desc">{id}</p>
{@gt key="months" value="0"}
<span class="count">{months}</span>
{/gt}
</li>
{/seasons}
</ul><!--// end .listview -->
这是 JSON 结构:
{
"seasons":[
{
"name":"Spring",
"id":"weklv7",
"months": 8
},
{
"name":"Summer",
"id":"lvuec5",
"months": 4
}
]
}
如果我从模板中删除 {@gt}
逻辑助手,错误就会消失,并且模板会作为 HTML 正确加载。例如:
<ul class="listview">
{#seasons}
<li>
<h3>{name}</h3>
<p class="desc">{id}</p>
<span class="count">{months}</span>
</li>
{/seasons}
</ul><!--// end .listview -->
非常感谢任何帮助,谢谢!
最佳答案
请密切关注提供的链接 smfoote。
为了在节点中“加载”灰尘助手,您需要的特定语法是:
var dust = require('dustjs-linkedin');
dust.helper = require('dustjs-helpers');
请注意,这不是链接上写的内容,链接文档表明这应该是带有“s”的 dust.helper(S)。
您根本不会在主要文档站点的任何地方找到该短语。
显然,这应该是连接事物的方式,这应该是完全直观的。
有时,我觉得那些未能记录他们对项目所做的重大更改的影响的人正在偷走我的生活。这个特殊的文档差距偷走了大约 5 个小时。
为了帮助那些同时运行 npm install dustjs-linkedin 和 npm install dustjs-helpers 并且想知道为什么它不能自动工作的人(因为它基本上是网站上所有文档所建议的) .当你在这里遇到这个错误时,我将重建你通常会遇到的错误:
if( dust.helpers[name]){
^
然后其中之一..
TypeError: Cannot read property 'if' of undefined
TypeError: Cannot read property 'math' of undefined
TypeError: Cannot read property 'eq' of undefined
TypeError: Cannot read property 'not eq' of undefined
TypeError: Cannot read property 'ne' of undefined
TypeError: Cannot read property 'lt' of undefined
TypeError: Cannot read property 'gt' of undefined
TypeError: Cannot read property 'select' of undefined
TypeError: Cannot read property 'size' of undefined
TypeError: Cannot read property 'tap' of undefined
TypeError: Cannot read property 'contextDump' of undefined
TypeError: Cannot read property 'idx' of undefined
TypeError: Cannot read property 'sep' of undefined
有趣的是,如果您将 dustjs-helpers 分配给“helpers”而不是“helper”,您会得到一个不同的错误:
undefined:1
").write("</form>").write("\n\n").helper("contextDump",ctx,{},null).write("\n\
^
TypeError: Cannot call method 'write' of undefined
编写一些代码来检测何时有人试图使用以“@”开头的东西并说..嘿你可能没有加载到你的帮助程序库......并使其在节点中工作是相当微不足道的和非节点上下文......或者他们可以修复文档。
我真诚地希望,我花额外的 15 分钟来拼凑一个 Google 可能会 Grok 的答案,可以为其他人节省我刚刚失去的 5 个小时。
-英尺
关于javascript - Dust.js 逻辑助手的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326570/
基本上我希望能够说如果项目的数量超过 1 做某事,否则做其他事情。 这是示例 json 数据: "items": [ { "key1" : "val1" }, { "key2" :
我从 Controller 获取一个 JSON,基于这个 JSON 的值,我想在我的灰尘文件中设置 key ,这样这个 key 就可以访问属性文件中的数据。 例如,我从 Controller 获取“s
我正在使用"dustjs-helpers": "1.6.0", 与 "dustjs-linkedin": "^2.6.0" 。 在我的模板中,我需要检查一个 OR 条件,例如 if( cherry =
我查阅了 Dust.js GitHub 页面,它说我可以将部分传递给模板,如下所示: {@partial checkbox_title="JM"} {>toggle/} {/partial} 像这样:
我根本不知道是否支持这种情况: 单个模板文件 定义的内联可重用 block 或可以接受参数的部分 调用 block /部分传递参数值的主体 我知道标签开启器很可能是不正确的。 真心希望你能做到这一点。
如何检查 Dust.js 模板中的 if not 条件? {?tags} {:else} Sorry, There are no tags! {/tags} 最佳答案 这是内置于 Dust 中的,
关于灰尘的文档太糟糕了,我已经仔细阅读了我可能找到的所有内容,但无法弄清楚它应该如何工作。 我遇到了假设的特殊值 $idx 和 $len 的问题,如果我猜对了,它们会在迭代类似数组的部分和所述类似数组
我从 express 为我生成的样板代码开始。我需要 dustjs-linkedin 并在 app.js 中编译一些简单的模板,如下所示: var dust = require('dustjs-lin
是否可以在不知道其属性的情况下打印对象?我正在尝试调试为什么无法在 View 中访问某个对象的属性。 {#object} {attr} {/object} 在上面的示例中,除了 attr 值之外,
我在 Dust js 中有一个示例模板,并使用 dust-down 编译了该源代码。 当我将模板 js 添加(使用脚本标签)到我的代码中时,我可以在控制台中看到编译后的对象。但是我怎样才能使用那个对象
我在使用 dust.js 循环遍历 json 时遇到问题,这是我的 json { "Undergraduate":{ "metaid":"0770", "Offcampu
我正在尝试从父上下文中检索循环中的值。 Dust 能够调用我的方法,但我的方法无法访问我在类中定义的属性,因为上下文是当前项。 例如: JavaScript 类 MyNamespace.MyClass
我正在将连接角色与灰尘模板相结合 ejs 模板有类似这样的语法 Impersonate 那在 Jade if userCan('impersonate') button#imperson
我有一个 dust.js 模板文件,我向其传递了 2 个数组: 1 个用于下拉多选的选项数组 1 个选定选项数组 如何在 dust.js 中选择下拉列表中的选项? 这是一个例子: 我发送给模板的数据
这是我必须渲染的数据: var data = { "foo" : "1", "project": [ { "name": "Project 1"
我的 JSON 数据看起来像这样: { data:[ [ {"title": "Text1"}, {"title": "Text
我尝试遵循 ( https://github.com/linkedin/dustjs/wiki/Dust-little-less-know-language-constructs ) 教程中的示例 1
这看起来很简单,但我只是不知道如何动态更改 @eq 条件。该示例显示了默认渲染,即 curly,但我需要做的是接受用户输入,例如单击按钮,并将其更改为 larry 或 moe。 查看我的jsfiddl
我正在服务器端应用程序上使用dust.js。我有一些代码,如下所示: dust.onLoad = function(tmpl, ctx, cb) { console.log(ctx); }; ..
我想知道如何在编译的dust 模板中管理帮助程序依赖项,特别是与在客户端上使用相关的帮助程序方法是否与编译的dust 模板捆绑在一起?客户端可能不支持的依赖项怎么办?或者如果该依赖项有多个其他依赖项?
我是一名优秀的程序员,十分优秀!