У меня возникли проблемы с поиском способа обновления пользовательского интерфейса ПОСЛЕ добавления в коллекцию. Итак, в приведенном ниже примере после нажатия кнопки и добавления в коллекцию добавляется дополнительный вход в DOM. Все хорошо, но я хотел бы найти способ нацеливаться на новый элемент ввода и предпочтительно уделять ему внимание в дополнение к CSS. К сожалению, я не могу найти какую-либо информацию, которая поможет решить эту проблему ПОСЛЕ обновления DOM. Есть идеи? СпасибоОбновления пользовательского интерфейса Meteor.js?
<body>
{{> myTemplate}}
</body>
<template name="myTemplate">
{{#each myCollection}}
<input type="text" value="{{name}}"><br>
{{/each}}
<br>
<button>Click</button><input type="text" value="test" name="testBox">
</template>
test = new Meteor.Collection("test");
if (Meteor.isClient) {
Template.myTemplate.rendered = function()
{
console.log("rendered");
this.$('input').focus()
}
Template.myTemplate.helpers({
'myCollection' : function(){
var testCollection = test.find({});
console.log("helpers");
return testCollection;
}
});
Template.myTemplate.events({
'click button': function(event){
event.preventDefault();
var val = $('[name="testBox"]').val();
console.log("events");
return test.insert({name: val});
}
});
}
Спасибо! Теперь все зависит от того, как настраивается шаблон Blaze. Каждый раз, когда этот шаблон отображается в DOM, вызывается событие onRender. Ну, это слишком просто. Мне трудно понять, как Метеор может это сделать для меня. Я так привык к тому, чтобы подключить все это сам. Но я должен сказать, что Метеор все время выглядит лучше и лучше. На прошлой неделе стало привыкать к тому, что коллекция стала единственным источником правды и снова позволила мне сделать эту часть работы для меня. Еще раз спасибо Касым –