1

Здравствуйте, я столкнулся с проблемой динамического загрузки шрифтов из существующего массива.Загружать шрифты динамически с помощью md-virtual-repeat

Я получаю все шрифты из Google шрифтов. Затем я использую md-virtual-repeat для визуализации шрифтов. На каждом элементе я использую директиву rt-font, функция ссылки этой директивы загружает необходимое семейство шрифтов с Web Font Loader. И здесь начинаются проблемы. Функция Link начинает загрузку шрифта не из первого элемента. Некоторые из элементов, не применяя стиль шрифта правильно, некоторые из них не оказывает не font.name до щелчка на нем

enter image description here

codepen here У меня есть. Так я предполагаю, что я нарушил логику в части динамической нагрузки шрифта и сделать здесь

vm.infiniteItems = { 
    items: [], 
    numLoaded_: 0, 
    toLoad_: 0, 
    maxLen: 810, 
    // Required. 
    getItemAtIndex: function(index) { 
    if (index > this.numLoaded_) { 
     this.fetchMoreItems_(index); 
     return null; 
    } 
    return this.items[index]; 
    }, 
    // Required. 
    getLength: function() { 
    return this.numLoaded_ + 5; 
    }, 
    fetchMoreItems_: function(index) { 
    if (this.toLoad_ < index) { 
     this.toLoad_ += 5; 
     if (this.toLoad_ <= this.maxLen){ 
     var partOfFonts = vm.fonts.slice(this.numLoaded_, this.toLoad_); 
     this.items = this.items.concat(partOfFonts); 
     this.numLoaded_ = this.toLoad_; 
     } 
    } 
    } 
} 

Pls кто-то может помочь мне объяснить логику того, как и в какой последовательности нужно сделать, чтобы: 1) Загрузка шрифтов с массив частично из 5 элементов 2) визуализируйте их в списке повторов и примените их стиль шрифта правильно. Что я пропустил, может быть, я должен использовать отложенную загрузку или ...

+0

Ваш пример работает для меня, все шрифты визуализируются. – kuhnroyal

ответ

0

Я нашел свои проблемы и избавился от md-virtual-repeat. Я использовал fork of angular infinite scroll вместо md-virtual-repeat, потому что, как я выяснил, это влияет только на html, он просто скрывает и показывает элементы DOM. Поскольку это работает, я просто добавил фильтр limitTo на свой огромный массив шрифтов, чтобы избежать перегрузки HTTP-запросов. То же самое можно использовать в agnular font select. Теперь мой демо-подборщик шрифтов работает. Есть определенно вещи для оптимизации и рефакторинга, но в качестве альфа-версии это нормально.