2014-01-09 112 views
4

我遇到了一個奇怪的問題,它可能是一些容易修復的東西,或者可能會丟失一些東西,但我找不到它是什麼。這是JS小提琴:http://jsfiddle.net/NQKvy/493/Ember視圖無法正常工作

如果在「添加一個」按鈕點擊,您將收到此錯誤:

Uncaught TypeError: Cannot set property 'indeterminate' of undefined 

那是因爲複選框,如果去掉複選框,你不會得到其他的東西。這隻會在將第一個元素添加到模型時發生。例如,如果您將其返回到路由器中:

App.IndexRoute = Ember.Route.extend({ 
    model: function(){ 
    return [ 
     {firstName: 'Kris', lastName: 'Selden'}, 
     {firstName: 'Luke', lastName: 'Melia'}, 
     {firstName: 'Formerly Alex', lastName: 'Matchneer'} 
    ]; 
    } 
}); 

將顯示數據。但最奇怪的是,如果您替換模板中的整個表格,如果替換爲div,那麼小提琴將工作,發生了什麼事情?我錯過了什麼嗎?

回答

1

奇怪!我觀察到的另一個行爲是,如果nice的模板如下內聯,則複選框正確顯示。小提琴網址:http://jsfiddle.net/NQKvy/495/

在突破發生異常的位置時,會顯示以下行。

//Ember.Checkbox : 
didInsertElement: function() { 
    this._super(); 
    this.get('element').indeterminate = !!this.get('indeterminate'); 
    } 

所以我猜,在這種情況下父元素沒有得到創建。但我無能爲力,爲什麼會發生這種情況。

+0

燁,我也做了同樣的,它工作的方式。不幸的是,我不能那樣做,那個觀點有一些邏輯來顯示懸停彈出窗口和其他一些事情。這個問題很奇怪。 – fanta

0

您的視圖中的表元素內創建的div,這會導致各種問題,大多數瀏覽器內(除非你去HTML5)

+0

我在我的項目中使用html5。我做了一些測試,改變tagName,在小提琴中,如果我添加tagName:'tr',並從模板中移除tr,它就會起作用。但不幸的是,它不在我的項目中。在我的項目中,我使用了燼1.2。我幾個星期前更新到該版本,它之前工作,所以,我想這是一個燼問題。 – fanta