Выпадающий список Telerik Kendo удалить элемент

У меня есть раскрывающийся список кендо, параметры которого выглядят следующим образом:

$scope.addressDropdownOptions = {

    dataSource: $scope.customerAddress,
    dataTextField: "Address.PrId",
    dataValueField: "PrId",

    headerTemplate: '<div style="width:100%;">' +
            '<span style="padding-left:5px; font-weight:bold;">City</span>' +
            '<span style="padding-left:129px; font-weight:bold;">Address</span>' +
            '<span style="padding-left:107px; font-weight:bold;">Note</span>' +
            '</div>',

    valueTemplate: '<span>{{dataItem.Address.City}} </span>' +
                   '<span>{{dataItem.Address.Street}}</span>',

    template: '<div style="width:100%;">' +
                    '<div class="customerDropDown">{{dataItem.Address.City}}</div>' +
                    '<div class="customerDropDown">{{dataItem.Address.Street}}</div>' +
                    '<div class="customerDropDown">{{dataItem.Address.Note}}</div> </div>',

};

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

Итак, я делаю следующее:

$scope.customerAddress.splice(i, 1);

Теперь выбранный элемент больше не является опцией в раскрывающемся списке, НО - valueTemplate все еще показывает удаленный элемент. Я бы хотел, чтобы это был первый индекс $scope.customerAddress.

Другая проблема заключается в том, что нельзя выбрать первый вариант в новом списке. Когда я щелкаю по нему, valueTemplate по-прежнему приводит к ранее удаленному элементу.

Может кто-нибудь помочь мне?


person Simon Sondrup Kristensen    schedule 16.02.2016    source источник


Ответы (1)


Если вы удалите элемент непосредственно из исходного объекта (в вашем случае $scope.customerAddress), dropDownList не будет знать об этом изменении. Если вы хотите удалить элемент, это нужно сделать с помощью удалить функцию:

var ddl =  $("#color").data("kendoDropDownList");
var oldData = ddl.dataSource.data();
ddl.dataSource.remove(oldData[0]); //remove first item
person The_Black_Smurf    schedule 17.02.2016