Фильтр в смарт-таблице Angular, как сделать, чтобы он НЕ искал скрытые свойства?

Я новичок в смарт-таблице Angular, я хотел бы знать, как сделать st-search по умолчанию без поиска скрытых полей.

Я нашел jsfiddle и изменил его, чтобы объяснить: http://fiddle.jshell.net/6pykn5hu/31/

В скрипте, если вы наберете «3» в поле поиска, он вернет одну запись, даже если идентификатор не отображается в самой таблице, как сделать идентификатор недоступным для поиска?

Спасибо


person Ray Sun    schedule 07.07.2016    source источник


Ответы (1)


вы можете использовать Array.prototype.map в вашем массиве данных, чтобы создавать копии объектов только с нужными вам свойствами и только затем предоставлять их в смарт-таблицу.

пример:

var data=[{name: "nick", id: 1}, {name: "bob", id: 2}];

var filteredData = data.map(function(object) {
    return {
        name: object.name
    };
});

// filteredData = [{name: "nick"}, {name: "bob"}]

Конечно, есть много способов удалить нежелательные свойства из объекта Как удалить свойство из объекта JavaScript?

person svarog    schedule 10.07.2016
comment
Спасибо, но я уже сопоставил свойства, которые мне нужны, однако идентификатор свойства является исключением, он необходим, но НЕ должен быть доступен для поиска. - person Ray Sun; 11.07.2016
comment
Вы можете использовать st-safe-src, чтобы сохранить копию исходных данных при использовании сопоставленной версии <table st-table="vm.originalData" st-safe-src="vm.filteredData">. - person svarog; 11.07.2016