Это может привести к злоупотреблению Ember, но я хочу создать рассчитанное свойство для количества элементов в магазине.Вычисленное свойство для количества записей в магазине?
Я пытаюсь прототипировать пользовательский интерфейс, который существует полностью на стороне клиента. Я использую данные об оборудовании с локальным адаптером хранения. Таким образом, я могу начать с консервированных данных, но я также могу добавить данные и сохранить их в перезагрузках.
Поскольку я сейчас работаю над слоем данных, я построил маршрут settings
, который дает мне интерфейс для сброса различных моделей. Я хотел бы добавить выражение Handlebars, например {{modelCount}}
, чтобы я мог видеть, сколько записей в нем хранится. Это быстрее, чем использование расширения Ember Data Chrome, которое сбрасывается на вкладку маршрутов на каждой перезагрузке страницы.
Ниже будет показать мне количество записей один раз, но не меняется, когда число записей изменений:
modelCount: function() {
var self = this;
this.store.find("my_model").then(function(records) {
self.set("modelCount", records.get("length"));
});
}.property()
Я понимаю, что магазин должен прокси к API в реальном мире, и find
возвращает обещание, но это о пределе моих знаний. Я не знаю, как сказать Эмберу, что я хочу знать, сколько записей есть, или если это даже правильный вопрос.
Можно ли это сделать в произвольной переменной? Я спрашиваю, потому что мой маршрут настроек действует как пользовательский интерфейс, чтобы «перезагрузить» несколько моделей. Так что я действительно хочу, это что-то вроде '{{model1Count}}', '{{model2Count}}', ... (Я согласен, что также возможно, что я пытаюсь сделать что-то очень нежелеющее.) – Ryan
Ember 2.x, 'ArrayControllers' [устарели] (https://emberjs.com/deprecations/v1.x/#toc_arraycontroller). Основные наблюдаемые Ember требуют, чтобы вы реализовали один из своих [классов массива] (https://emberjs.com/api/classes/Ember.Array.html), чтобы ваши шаблоны обновлялись при изменении записей в массиве. – efx