0

我遇到了下划线模板的问题。

我在应用程序启动时获取当前用户。所以我通过传递我从cookie中获取的id来创建一个实例。我将此模型传递给视图并在那里获取它(无论我在哪里执行它都是异步的)。

我有一些由 require.js 插件(var msg)提供的 i18n,所以我使用了这个函数serializeData

if (this.model.attributes.name) {
    msg.model = this.model.toJSON();
}

return msg;

在我的下划线模板中,如果可能的话,我想显示用户名,所以我这样做了

<% var model = model; if (model) { %>
    <%= model.name.givenName %>
<% } %>

我发现如果我不打电话,var model = model我什至无法检查它的存在,if (model)因为它会抛出一个undefined error.

我对此感到有点不好,因为我不知道如何做得更好。也许我应该使用车把或小胡子而不是微模板。我该如何解决这个丑陋的问题?

4

1 回答 1

0

你应该像这样检查

if (typeof model != "undefined" && model.name != undefined && model.name.givenName != undefined ) {
    ...
}

它与 Javascript 的怪异语法有关。

于 2013-02-12T13:36:56.600 回答