0

我将 AngularUI 的ui-select2指令与 AJAX 一起使用。

以下是我的观点:

<label>Group: <input ng-model="group" ui-select2="select2GroupConfig"></label>

这是我的模型中的内容:

$scope.select2GroupConfig = {
    ajax: {
        url: 'theURL',
        data: function (term, page)
        {
            return { q: term };
        },
        results: function (data, page)
        {
            return { results: data };
        }
    }
};

这按预期工作。


我的问题:如何通过模型更新值?

我试过:

$scope.group = 'some group';

我也尝试使用一个对象:

$scope.group = { id: 32, text: 'some group'};

但这也不起作用。

如何通过模型更新使用 AJAX 的 select2?

4

2 回答 2

1

原来你可以将它设置为一个对象,但只能在ui-select2运行之后;我试图给它一个初始值。

因此,您必须使用select2'initSelection函数,而不是使用常规模型:

$scope.group = 'Dummy Content';

$scope.select2GroupConfig.initSelection = function ( el, fn ) {
    fn({ id: 2, text: 'Some group' });
}

请注意,您必须给输入一个初始值,否则initSelection永远不会被调用。这就是为什么我只是将它设置为一些虚拟内容。


这行得通,但感觉就像一个黑客。

有没有人有更好的想法?

于 2012-12-21T16:24:12.460 回答
0

如果你有initSelection设置,你可以只传递 ID,指令将拉起整个行对象。

这也将允许您在页面加载到 ID 时设置该值。

如果您不想使用initSelection,可以将整行(对象)设置为值,并且 select2 将相应更新。然而,这一切都取决于您的用例。

于 2013-01-05T02:59:03.610 回答