相关疑难解决方法(0)

检查下划线模板中的未定义变量

我在模板中显示了libraryPrep对象的模态视图,如下所示:

if (_.isUndefined(this.libraryPreps)) {
                this.$el.html(this.template({  }));
            } else {
                this.$el.html(this.template({ libraryPreps: this.libraryPreps.toJSON() }));
            }
Run Code Online (Sandbox Code Playgroud)

当我有一个libraryPreps对象时,else语句有效.在我的模板中,我使用它像这样:

<select id="libraryPreps" >
                    <%  if (!_.isUndefined(libraryPreps)) { %>
                    <% _.each(libraryPreps, function (libraryPrep) { %>
                    <option value="<%=libraryPrep.id%>"><%= libraryPrep.name %></option>
                    <% }); %>
                    <% } %>
                </select>
Run Code Online (Sandbox Code Playgroud)

当我没有libraryPreps对象时,我没有得到我的模板来渲染,并且我在控制台上得到一个错误,即libraryPreps是未定义的.我在模板中检查未定义错误吗?我觉得我在骨干模态视图中以相同的方式检查它,但出于某种原因,在我的实际模板中,它似乎不起作用.我的模板符号是否正确?谢谢.

javascript underscore.js

17
推荐指数
1
解决办法
2万
查看次数

下划线模板投掷变量未定义错误

我看过一些关于骨干js主题的视频.这是直接来自视频的示例.它是从2012年开始的,所以我认为骨干规则/库已经发生了变化,但我无法弄清楚为什么它现在不起作用.在视频中,该人显示它在JS Fiddle中运行,但我无法让它工作.(我在JS Fiddle中包含了必要的库,即下划线,主干和jQuery)

var V = Backbone.View.extend({
  el:'body',
  render: function () {
  	var data = { lat: -27, lon: 153 };
    this.$el.html(_.template('<%= lat %> <%= lon%>', data));
    return this;
  }
});

var v = new V();

v.render();
Run Code Online (Sandbox Code Playgroud)
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js underscore.js underscore.js-templating

14
推荐指数
1
解决办法
1万
查看次数