2013-12-16 69 views
1

我无法从列表中使用javascript和淘汰赛一起删除字符串。赞赏任何建议,非常感谢,詹姆斯如何从删除列表中删除值

见这个例子:http://jsfiddle.net/rxkU3/4/

代码片断

viewModel.toRemove = ko.observable(); 
viewModel.remove = function() { 
    viewModel.Article.Keywords().remove(viewModel.toRemove()); 
} 

在Chrome的控制台我得到的错误: “有没有方法 '删除'”

回答

5

表达式viewModel.Article.Keywords()是一个纯字符串,而不是数组。因此,没有remove函数。

如果数据的确返回了由管道定义的列表,那么您可以尝试调用字符串上的replace函数来删除该值(这不代表删除第一个值,并且还会删除多个条目如果它们具有相同的值):

var newKeywords = viewModel.Article.Keywords().replace("|" + viewModel.toRemove(), ""); 
viewModel.Article.Keywords(newKeywords); 

小提琴:http://jsfiddle.net/rxkU3/6/

不过,我不建议此解决方案。它是很多更好和更少的错误倾向于使用实际的数组,如果可能的话。

在这种情况下,您可以简单地调用Keywords.remove()从数组中删除条目。

见本小提琴(分裂原字符串到一个数组):http://jsfiddle.net/rxkU3/8/

见本小提琴(在JSON数据已经是一个数组):http://jsfiddle.net/rxkU3/7/

+0

多么容易到每个相邻值旁边都有删除? –

+2

删除值:: http://jsfiddle.net/beauxjames/NqKUk/ ||标记为已答复每个约瑟夫 – beauXjames

+0

谢谢你们。 –