私はblogPostを追加/編集するとき、私はすべてのプロパティを持つオブジェクトを持っています。私のコード:Meteorのオブジェクトを拡張する
追加ポスト:
Template.postListAdmin.events({
'submit form': (e) => {
// Prevent default browser form submit
e.preventDefault();
let image = $('#js-image-uploaded'),
draft = $('[name="draft"]'),
isSmall = false,
isDrafted = false;
// If post draft, return true
if (draft.is(':checked')) isDrafted = true;
// If post image is small
// return true for add 'small' classe
if (image.height() < 80) isSmall = true;
let post = {
title: $('[name="title"]').val(),
image: image.attr('src'),
isSmall: isSmall,
description: $('[name="description"]').val(),
category: $('[name="category"]').val(),
time: $('[name="time"]').val(),
dateCreated: dateFormat($('[name="dateCreated"]').val(), 'yyyy-mm-dd'),
content: $('[name="content"]').val(),
draft: isDrafted
};
Meteor.call('posts.insert', post);
setTimeout(() => {
$('#js-post-form')
.toggleClass('is-hidden')
.find('input, textarea').val('');
}, 500);
}
});
編集ポスト:
Template.postEdit.events({
'submit form': function (e) {
e.preventDefault();
let image = $('#js-image-uploaded'),
draft = $('[name="draft"]'),
isSmall = false,
isDrafted;
if (draft.is(':checked')) isDrafted = true;
else isDrafted = false;
if (image.height() < 80) isSmall = true;
let post = {
slug: $('[name="title"]').val(),
title: $('[name="title"]').val(),
image: image.attr('src'),
isSmall: isSmall,
description: $('[name="description"]').val(),
category: $('[name="category"]').val(),
time: $('[name="time"]').val(),
dateCreated: dateFormat($('[name="dateCreated"]').val(), 'yyyy-mm-dd'),
dateModified: new Date(),
content: $('[name="content"]').val(),
draft: isDrafted
};
Meteor.call('posts.edit', this._id, post);
Router.go('postListAdmin');
},
});
が、私は私のコードを最適化したいと、私のオブジェクト 'ポスト' 2倍を作成しないでしょう。
あなたはこれをどのように最適化できるか考えていますか?
はあなたにすべてのBOBYをありがとう:)
同等の部分を関数に引っ張ったり、管理用テンプレート内の編集用テンプレートを入れ子にしたりしてください。 – MasterAM
例がありますか?私は本当に理解していない:( –
あなたはいくつかの読書を持っている。リファクタリングを見て、[流星ガイド](https://guide.meteor.com/)を読んでください。私は「頭の先を向いた」アプローチが好きですが、RTFMで学習する必要があるものもありますし、タイムアウトでビューを変更しないでください。 – MasterAM