Javascript 如何使用AngularJS在ui-select2上设置值?

Javascript 如何使用AngularJS在ui-select2上设置值?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我一直在到处寻找解决办法,但找不到 我在DOM中有一个元素,我正在填充从DB(服务器端)获得的结果。顺便说一下,这是一个多选,因此它可以包含多个值 我想做的是: 如果只返回一个值,则将该值分配给字段,否则(0或更多)保留为空 也就是说,这就是我所尝试的: 视图(其中包括一些您可以忽略的Jinja2内容): 使用initSelection是一项建议,并已找到。这不起作用,在一些挖掘之后…我发现只有当您设置了一个值时才会调用它…这就是为什么我尝试设置select value=“”…尽管这看起来很

我一直在到处寻找解决办法,但找不到

我在DOM中有一个元素,我正在填充从DB(服务器端)获得的结果。顺便说一下,这是一个多选,因此它可以包含多个值

我想做的是:

  • 如果只返回一个值,则将该值分配给字段,否则(0或更多)保留为空
也就是说,这就是我所尝试的:

视图(其中包括一些您可以忽略的Jinja2内容):

使用initSelection是一项建议,并已找到。这不起作用,在一些挖掘之后…我发现只有当您设置了一个值时才会调用它…这就是为什么我尝试设置select value=“”…尽管这看起来很无聊

所以问题是从未调用initSelection,因此我无法设置任何值。我并不特别渴望使用这种方法,任何其他方法都可以……我见过,但它看起来像是一些jQuery黑客

有什么想法/建议吗?我无法提供有意义的Planker或JSFIDLE,因为代码只是更大应用程序的一部分,这样做没有多大意义

谢谢

编辑:我为选择添加了一个手表,但我不知道如何从控制器更新视图:

    $scope.$watch('matchable.channels', function(newVal,oldVal){
        //If number of channels is 1, load it by default in channel selector
        if ($scope.selectOptions.channels.length == 1){
            $scope.matchable.channels[0] = $scope.selectOptions.channels[0];
        }
        console.log(newVal,oldVal);
    });
$scope.matchable = {channels : [$scope.fullChannelList[0].id]};
EDIT++:通过传递频道id解决了此问题,如果其他人有此问题,请确保您在ui-select2字段中为正在使用的任何内容提供id,如下所示:

    $scope.$watch('matchable.channels', function(newVal,oldVal){
        //If number of channels is 1, load it by default in channel selector
        if ($scope.selectOptions.channels.length == 1){
            $scope.matchable.channels[0] = $scope.selectOptions.channels[0];
        }
        console.log(newVal,oldVal);
    });
$scope.matchable = {channels : [$scope.fullChannelList[0].id]};