MongoDB、Angular、Express、および Node (MEAN スタック) を使用してアプリケーションを構築しています。
MEAN.JS ジェネレーターを使用してアプリケーションを足場にしました。
記事モジュールを参考にします。
記事のコレクションに 7000 件のレコードがあり、各レコードに日付が関連付けられているとします。テーブル内のレコードを表示するためにページをロードするたびに 7000 レコードすべてをメモリにロードするのは非効率的であり、そのためにひどいパフォーマンスの低下が見られます。このため、(1 か月前) から (1 年後) の範囲の日付のレコードのみを読み込み、テーブルに表示したいと考えています。現在、次の方法でこれを行うことができます。
私の article.client.controller.js では:
$scope.find = function() {
$articles = Articles.query();
};
...そして私のarticles.server.controller.jsでは:
var now = new Date();
var aYearFromNow = new Date(now.getTime() + 86400000*365); //add a year
var aMonthAgo = new Date(now.getTime() - 86400000*30); //subtract roughly a month
exports.list = function(req, res) { Article.find().where('date').lt(aYearFromNow).gt(aMonthAgo).sort('-created').populate('user', 'displayName').exec(function(err, articles) {
if (err) {
return res.send(400, {
message: getErrorMessage(err)
});
} else {
res.jsonp(articles);
}
});
};
問題は、これが動的な方法ではないことです。言い換えれば、ユーザーがどれだけ前に、どれだけ前に見たいかを指定できるようにしたいのです。
サーバー コントローラのクエリ パラメータを変更するクライアント ビューの変数 (「aYearFromNow」や「aMonthAgo」など) にバインドするにはどうすればよいですか?