2013-03-01 83 views
4

我很困惑爲什麼'''el'''在這裏沒有定義,並且定義了$ el。

undefined el

背景是連接實驗的CoffeeScript如下:

 
class FastTodo.Views.AddTodoItem extends Backbone.View 

    template: JST['todo_items/add_item'] 

    el: $('#main') 

    render: -> 
    console.log("render") 
    console.log($("#main")) 
    console.log(@el) 
    console.log(@) 
    $(@el).html @template 

    initialize: -> 
    @render() 

我怎樣才能使在這種情況下有何看法?

回答

5

嘗試的元素聲明重寫el: '#main'

我覺得應該爲你工作。

順便說一下,根據您的控制檯日誌,jQuery元素($ el)也是空的。您必須在標記完全加載之前聲明視圖。通過爲el提供元素的選擇器,確保只有在文檔準備好(加載)時纔會提取元素。

+0

謝謝,確實el:'main'的作品,它也在文檔中提到:http://backbonejs.org/#View-el - 然而,evt。有人知道爲什麼在某些代碼中你會看到一個el:$('#main')表單? – poseid 2013-03-01 18:02:04

+1

imo這是一個錯誤,除非與'setElement'方法一起使用 – iMoses 2013-03-01 19:41:21

+1

'el:$('#main')'只要在定義類之前DOM中存在元素'#main'就可以正常工作。 – Ben 2013-03-02 02:38:31