如何检查变量是否未定义

时间:2012-04-18 06:22:44

标签: javascript jquery backbone.js haml undefined

我正在使用HAML和jquery来编写我的应用程序。我有一个“共享”模板,用于显示URL链接。我希望它具有灵活性,以便根据传递给它的变量显示不同的URL。

//Code to trigger view and populate template -> Note I only pass in the thread vara here
share_view = new Onethingaday.Views.Threads.ShareView
  thread: new Onethingaday.Models.Thread(@options.thread_muses.first().get('question'))

//snippet from share view to pass the variables to the template
render: ->
  $(@el).html @template
    nickname: @options.nickname
    thread_slug: @options.thread.get('slug')
    thread_text: @options.thread.get('text')
  @

//Snippet of share view's template. Added if-else statement to check if nickname is defined
.sidebar_text Link:
  <% if (typeof <%= nickname %> !== "undefined") { %>
  %input.detail_text{value: "<%= 'http://dailymus.es/' + nickname + '/threads/' + thread_slug %>"}
  <% } else { %>
  %input.detail_text{value: "<%= 'http://dailymus.es/' + '/threads/' + thread_slug %>"}
  <% } %>

在上面的例子中,我没有定义“nickname”变量。我希望其他部分会被触发,显示的网址为“http://dailymus.es/threads/some-slug-text

但是我仍然得到以下

enter image description here

如您所见,它仍在触发'if'部分,并在URL中显示'undefined'。

如何在我的案例中正确检查“未定义”变量?

1 个答案:

答案 0 :(得分:1)

你还需要在&lt;%=%&gt;中包含昵称吗?当它已经在一个?