javascript - 访问 jsrender 模板中的全局 javascript 变量并更新它

标签 javascript jsrender

我正在尝试使用 jsrender 模板中的值更新全局 javascript 变量。我怎样才能完成它...

我创建了一个 fiddle http://jsfiddle.net/4RH7n/8/

我需要将最后一部电影的名称放入该 javascript 变量中..

最佳答案

可以很容易地注册自定义标签和助手来访问或修改全局变量。有 sample here (代码是 here )显示了两种方式,并说明了在模板中设置和获取全局变量。助手/自定义标签比使用 {{* ...}} 更好(因为那样你可以更好地分离代码和标记) - 但如果你使用 {{* 语法,你必须设置 allowCode=true。 (参见 this example)。

上述方法是使用您自己的扩展来访问任何全局的方法。但是,对于大多数情况,您可能只有某些特定的全局变量要访问。在这种情况下,在 .render() 调用(或 .link() 调用,如果您使用JsViews)像这样:

...render(myData, { foo: myFooGlobal, bar: myBarGlobal });

然后在模板中的任何表达式中访问它们,例如:

... {{:~foo}} ... {{for ~bar}} ... {{/for}} ...

如果您希望能够从您的所有模板访问这些全局变量(或对特定模板的所有调用),您可以将它们注册为全局(或特定于模板的)助手/模板参数,然后您不需要不需要通过渲染/链接调用传递它们。

例如,为所有模板全局注册它们:

$.views.helpers({
    foo: myFooGlobal,
    bar: myBarGlobal 
});

然后,您可以使用与上述完全相同的方式访问它们,使用 ~foo(或使用 foo() 作为函数)。

您可以在 GitHub 上找到所有这些方法的示例.


更新:

除了上面引用的文档和示例之外,http://www.jsviews.com 上还有更多最新的文档和示例。 ,特别是 herehere .

关于javascript - 访问 jsrender 模板中的全局 javascript 变量并更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375671/

相关文章:

javascript - 条件语句在 jsrender v1.0pre 中有效吗?

javascript - 预填充 jsrender 模板

javascript - jsrender.js 中超出了最大调用堆栈大小

javascript - JsRender:使用 if 语句将 JSON 对象中的值与外部变量进行比较

javascript - Firefox 不支持 W3Schools slidehorizo​​ntal javascript

javascript - 从 Node + Express API 中提取使用 res.json 发送的信息

javascript - 'aria-describedby'什么时候返回空值

JavaScript:如何从参数更改元素属性?

javascript - 从 Canvas 像素数据中获取错误的 RGB 值

javascript - jsRender 递归模板