Использование вычисляемого свойства ember (фильтра) для фильтрации модели и использование таблицы 2 ember-models для отображения в формате таблицы. Это не дает никакой записи, чтобы показать
Попытка отобразить данные пользователя с помощью аддона ember-models-table. Также хотел отфильтровать данные, используя поле isActive.Am, используя для этого вычисляемое свойство ember (фильтр). Первый раз, когда страница загружается, я получаю правильный результат. Но когда я пытаюсь фильтровать, я вижу, что значение для currentfilter передается правильно, но я не получаю никаких результатов. Таблица говорит, что нет записей, чтобы показать.
Мой код.hbs:
<div class="form-group">
<label for="show">Show:</label>
<select class="form-control" id="show" onchange={{action "filterUpdated" value="target.value"}}>
<option value="null">All</option>
<option value="true">Active</option>
<option value="false">Inactive</option>
</select>
</div>
{{models-table
data=filteredPeople
columns=columns
showColumnsDropdown=false
useNumericPagination=true
filteringIgnoreCase=true
showPageSize=true
}}
Код моего контроллера:
users: alias('model'),
currentFilter: null,
filteredPeople: filter('users', function(user) {
if(this.get('currentFilter') === null) {
return true;
} else {
return user.isActive === this.get('currentFilter');
}
}).property('users', 'currentFilter'),
actions: {
filterUpdated: function (value) {
alert(value);
if (value=== null) {
this.set('currentFilter', null);
}
else {
this.set('currentFilter', value);
}
}
Пожалуйста помоги.
1 ответ
После проверки, я только что заметил, что это глупая ошибка, метод filterUpdated возвращает строку, а для поля isActive требуется логическое значение. Я просто включил следующую строку, чтобы изменить ее на логическое.
var isActiveS = (this.get ('currentFilter') == 'true');
Это сработало.