2013-11-28 43 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"); 
} 
相关问题