我正在尝试在显示之前更改x-editable源数据,以便即使源更改,我的下拉菜单条目也始终保持新鲜。
这是一个解释的链接:http://jsfiddle.net/XN7np/3/
// my source that can change over time
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];
$('#my_select').editable({
'mode' : 'inline',
'source': source,
});
$('#my_select').on('shown', function(ev, editable) {
// now changing my source just before dropdown is shown
source = [{'value': 1, 'text': 'GOOD'}, {'value': 2, 'text': 'FU'}];
//$(editable).editable('option', 'source', source); NOT WORKING
//$('#my_select').editable('option', 'source', source); NOT WORKING
//$(this).editable('option', 'source', source); NOT WORKING
});
任何想法?
答案 0 :(得分:7)
我在文档中没有看到它,但您可以将函数传递给source参数,如下所示:
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];
$('#my_select').editable({
'mode' : 'inline',
'source': function() {
return source;
},
});
这样它总是使用更新的源数组。我更新了你的小提琴: http://jsfiddle.net/XN7np/4/
答案 1 :(得分:0)
此行有效:
$('#my_select').editable('option', 'source', source);
你必须使用双引号来表示"值"和"文字"而不是单引号'值'' text'对于任何可编辑的源,例如source2:
var source2 = [{"value": 1, "text": "fine111"}, {"value": 2, "text": "bad22"}];
$('#change').click(function(e) {
$('#my_select').editable('option', 'source', source2)
});
将上面的代码复制到你的小提琴示例中,看看它是如何工作的。
答案 2 :(得分:0)
.catch<any[]>(this.handleError.bind(this));