, вероятно, это не имеет никакого отношения к autoform
, но, поскольку я не совсем уверен, я думал, что я тоже поместил эту информацию. В моей форме я не получаю заранее заполненных полей, которые я ожидаю от формы обновления, а также есть какой-то странный вывод в моей консоли, который я не понимаю.meteor iron-router с автоопубликованием, не получая заполненные поля в форме обновления
Соответствующая маршрутизатор часть:
// app/lib/routes.js
Router.route('/assignment/:_id', function(){
var assignment = Assignments.findOne({_id: this.params._id});
console.log('ass w/' + this.params._id);
console.log(assignment);
this.render('Assignment', {data: assignment});
}, {name: 'assignment.show',
waitOn: function(){
console.log('do the wait');
Meteor.subscribe('assignments');
}
}
);
Как вы видите, есть много отладочных там уже. Маршрут, кажется, называется правильно, потому что шаблон отображается после клика.
Publishing сделан здесь:
// app/server/publish.js
Meteor.publish('assignments', function() {return Assignments.find();})
Теперь этот код, кажется, называется несколько раз. Общий выход после того, как попасть в этот маршрут является:
do the wait
routes.js:22 ass w/M2gtLf9vbbWCTgxze
routes.js:23 undefined
debug.js:41 insert failed: Access denied. No allow validators set on restricted collection for method 'insert'.
routes.js:27 do the wait
routes.js:22 ass w/M2gtLf9vbbWCTgxze
routes.js:23 Object {_id: "M2gtLf9vbbWCTgxze", title: "Neuer Titel", priority: "high", description: "just do it"}
(Ошибка вставки, вероятно, происходит из другого места) Там могут быть некоторые другие ошибки в там, тоже, но я надеюсь, что выход показывает проблему. То, что я не получаю, состоит в том, что я, кажется, не получаю задание сначала, но во втором вызове оно получено, что для меня странно (почему это происходит?). Я не уверен в структурах папок, но не вызывается public.js после route.js, так что может быть что-то неопубликованное? Если да, то куда поместить мои файлы?
Вероятно, не важно, но это мой assignment.html
<template name="Assignment">
<div class="panel panel-default" id="main">
<div class="panel-heading">Change Assignment</div>
<div class="panel-body">
{{>quickForm collection="Assignments" id="updateAssignmentForm" type="method" meteormethod="updateAssignment"}}
</div>
</div>
</template>
Итак, почему маршрутизатор вызывается дважды, почему не существует никакого вывода на первом и почему я не получаю укажи поля здесь? (все поля просто пусты в моей форме)
этот синтаксис мне кажется лучше! Однако, когда я добавляю некоторые 'console.log ('called');' в функцию данных, он будет выводиться дважды, снова. Зачем? – IceFire
См. Http://stackoverflow.com/questions/25099549/meteor-why-is-iron-routers-onbeforeaction-called-multiple-times –
Я обновил ответ, чтобы вернуть дескриптор подписки, это важно! Также вы можете извлечь выгоду из этого сообщения http://0rocketscience.blogspot.com/2015/08/meteor-build-clean-easy-to-maintain.html –