2016-06-02 2 views
1

У меня есть массив объектов, которые я связываю с DOM через ValueConverter. Аурелия не может понять, что я делаю в ValueConverter, и поэтому она не обновляется должным образом. Я хочу принудительно провести грязную проверку этого объекта. Как я могу это сделать?Затруднительный контроль в Aurelia

ответ

3

Экспозиция вашего массива через свойство getter.

Вместо:

export class Foo { 
    myArray = [];  // will be observed without dirty-checking 
} 

Используйте свойство геттер:

export class Foo { 
    _myArray = []; // internal value that you will manipulate as-needed 

    get myArray() { // this property will be dirty-checked. 
    return this._myArray; 
    } 
} 
+0

немного многословным, было бы возможно для нас, чтобы включить что-то в представлении, что флаги конкретной привязки как грязные чековые, ала-связывающее поведение? –

+0

Я думаю, что это возможно - [heres] (https://gist.run/?id=304cddadb7374610117a6dea2074ff5d) * неполный *, но рабочий прототип. Проблема в том, что наблюдатели системы привязки привязаны к комбинациям экземпляров/свойств объекта, а не к конкретным экземплярам привязки. Несколько экземпляров привязки разделяют наблюдателей. Например, '$ {foo.bar.baz} $ {foo.bar.beep}' в конечном счете использует 4 общих наблюдателя свойств, хотя в каждом выражении есть 3 реквизита. Нам нужно будет сделать еще немного работы с поведением привязки, чтобы сделать конкретный экземпляр привязки dirty-check. –

+0

Я чувствую, что это не лучший способ решить фактическую проблему, с которой я столкнулся, возможно, не стоит наше время, чтобы попытаться заставить ее работать. я думаю, что лучшее решение позволит решить нерешенные проблемы с преобразователем ценности. поскольку мы понятия не имеем, какую информацию использует конвертер значений, нам нужен чистый способ дать разработчику больше возможностей, когда перепроверка привязывает. благодаря! –

Смежные вопросы