Boosttrap multiselect не работает при использовании ng-options - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть угловое приложение с выпадающими списками: множественный и одиночный выбор с использованием начальной загрузки начальной загрузки, моя проблема в том, что когда у меня есть какой-либо тег select на странице, он автоматически отображает несколько и выдает сообщение об ошибке.

var app = angular.module("myApp", ["ui.bootstrap"]);
app.directive('multiSelect', function () {

function link(scope, element) {
    element.multiselect();
}

return {
    restrict: 'A',
    link: link
};
});

app.config(['$provide', function ($provide) {
$provide.decorator('selectDirective', ['$delegate', function ($delegate) {
    var directive = $delegate[0];

    directive.compile = function () {

        function post(scope, element, attrs, ctrls) {
            directive.link.post.apply(this, arguments);

            var ngModelController = ctrls[1];
            if (ngModelController && attrs.multiSelect !== null) {
                originalRender = ngModelController.$render;
                ngModelController.$render = function () {
                    originalRender();
                    element.multiselect('refresh');
                };
            }
        }

        return {
            pre: directive.link.pre,
            post: post
        };
    };

    return $delegate;
}]);
}]);

и это сообщение об ошибке, которое я получил:

TypeError: Cannot read property 'prop' of undefined
at Multiselect.<anonymous>

и выберите:

        <select ng-model="selection"  class="form-control" ng-options="x.Code  as x.Description for x in Types track by x.Code" multiple="multiple" multi-select></select>
...