Это следование этого вопрос: Access a DOM element in AureliaКогда привязка к атрибуту ref становится действительной в Aurelia?
Есть ли крюк в экране активации Lifecycle, который позволяет запускать код послеref
переплетов были созданы? В настоящее время кажется, что существует период времени после вызова крюка activate
, когда привязки ref
еще не настроены, а затем в какой-то момент они активируются. Я испытал это, добавив <div ref="myDiv"></div>
почти до дна welcome.html
в клонированной версии последней (v0.13.0) каркасно-навигации репо и проверки наличия ссылки на вид-модели, как это:
export class Welcome{
heading = 'Welcome to the Aurelia Navigation App!';
firstName = 'John';
lastName = 'Doe';
testMyDiv() {
console.log("Getting my div")
console.log(this.myDiv)
}
get fullName(){
this.testMyDiv()
return `${this.firstName} ${this.lastName}`;
}
welcome(){
alert(`Welcome, ${this.fullName}!`);
}
}
фрагмент из нижней части шаблона ...
<button type="submit" class="btn btn-default">Submit</button>
</form>
<div ref="myDiv"></div>
</section>
</template>
Это снимок того, что я вижу в консоли ...
welcome.js:10 Getting my div
welcome.js:11 undefined
welcome.js:10 Getting my div
welcome.js:11 undefined
welcome.js:10 Getting my div
welcome.js:11 <div ref="myDiv" class="au-target"></div>
welcome.js:10 Getting my div
welcome.js:11 <div ref="myDiv" class="au-target"></div>
(continues)
в распечаток, как го продолжается бесконечно. Вы можете видеть, что fullName()
вызывается регулярно, чтобы обновить экран, если имя изменено (я предполагаю, что это грязная проверка) ... но вы можете видеть, что в начале есть период, когда ссылочный div
НЕ действителен как свойство модели представления, а затем оно действительно. Может кто-нибудь объяснить это? Есть ли способ подключиться к модели просмотра после того, как ref
станет действительным?
Не правильно, НО, очень полезно! Он указал мне в правильном направлении. Мне нужно было использовать обратный вызов 'прикрепленный ', оба из которых указаны в [docs] (http://aurelia.io/docs.html#extending-html) в разделе« Расширение HTML ». Gracias. – ntilwalli
Я исправляю его сейчас, пожалуйста, просмотрите –
'приложенный', похоже, не работает для ссылки на элемент внутри' repeat.for', где каждый элемент 'ref =" 'currentElementInLoop.htmlElement", если я не делаю что-то не так? Если я 'setTimeout' внутри' attach', он работает. – powerbuoy