我没有使用javascript和knockout从列表中删除字符串.任何建议表示赞赏,非常感谢,詹姆斯
看这个例子:http://jsfiddle.net/rxkU3/4/
代码段
viewModel.toRemove = ko.observable(); viewModel.remove = function() { viewModel.Article.Keywords().remove(viewModel.toRemove()); }
在Chrome的控制台中,我收到错误:"没有方法'删除'"
表达式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/