2013-11-28 76 views
1

我正在使用knockout來創建一個存儲數組的表,我有一個創建並放入可觀察數組的選項列表。我希望能夠將年份添加到表格中,但是已將使用的值從選擇列表中刪除。目前我已將值添加到表中,但沒有問題,但似乎無法從選擇列表中刪除值。這是我創建的fiddle如何從select中刪除值使用knockout選項綁定?

var yearList = function(){ 
    var years = []; 
    var id = 0; 
    for(var y=1950; y < 2056; y++) { 
     id++; 
     years.push({ 
      id:id 
      ,year:y 
     }); 
    } 
    return years; 
} 

var ViewModel = function() { 
    var self = this; 
    self.years = ko.observableArray(yearList()); 
    self.selectedYear = {}; 
    self.yearTable = ko.observableArray([ 
    { 
     id:1 
     ,year:2013 
    },{ 
     id:2 
     ,year:2014 
    } 
    ]); 

    self.addYear = function() { 
     var addEntry = self.selectedYear; 
     self.yearTable.push(addEntry); 
     $("#dialog").dialog("close"); 
    } 
}; 

ko.applyBindings(new ViewModel()); 

$(function() { 
    $("#dialog").dialog({ 
     autoOpen: false, 
     show: { 
     effect: "blind", 
     duration: 1000 
     }, 
     hide: { 
     effect: "explode", 
     duration: 1000 
     } 
    }); 

    $(document).on('click','#newEntry',function() { 
     $("#dialog").dialog("open"); 
    }); 
}); 

有人可以幫忙嗎?

回答

1

你只需要調用.remove方法您self.years陣列上。

見小提琴這裏:http://jsfiddle.net/JTJ8n/13/

段:

self.addYear = function() { 
    var addEntry = self.selectedYear; 
    self.yearTable.push(addEntry); 
    self.years.remove(addEntry); 
    $("#dialog").dialog("close"); 
} 
相關問題