【发布时间】:2014-03-06 19:54:21
【问题描述】:
首先,让我告诉你,我是 javascript 和 node.js 领域的新手。我一直在寻求帮助以尝试做我想做但尚未找到的事情。
我正在使用 MEAN 堆栈 (http://mean.io/),并且我正在尝试在包含的文章模型中实现搜索功能。搜索将寻找具有特定标签的文章,并将在索引页面中实现。请关注我,看看你能不能找到我缺少的东西。
在后台:
应用程序/模型/
/**
* Article Schema
*/
var ArticleSchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true
},
content: {
type: String,
default: '',
trim: true
},
tag: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
应用程序/控制器/
exports.searcharticle = function(req, res) {
Article.find({'tag': req.params.tag}).sort('-created').populate('user', 'name username').exec(function(err, articles) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(articles);
}
});
};
在 app/routes/articles.js 中添加了搜索的路由
app.get('/articles/search/:tag', articles.searcharticle);
在前端:
为搜索创建了视图,它将显示搜索结果 - public/views/articles/search.html
<section data-ng-controller="ArticlesController" data-ng-init="searchart()">
<ul class="articles unstyled">
<li data-ng-repeat="article in articles">
<span>{{article.created | date:'medium'}}</span> /
<span>{{article.user.name}}</span>
<h2><a data-ng-href="#!/articles/{{article._id}}">{{article.name}}</a></h2>
<div>{{article.tag}}</div>
</li>
</ul>
<h1 data-ng-hide="!articles || articles.length">Your search hasn't returned any results. <br> Why don't you <a href="/#!/articles/create">Create One</a>?</h1>
</section>
index.html 的视图,将在其中实现搜索框
<section data-ng-controller="ArticlesController">
<form role="form" data-ng-submit="searchart()">
<div>
<div>
<input type="text" id="tag" ng-model="selected" class="form-control" placeholder="Tag">
</div>
<div>
<button type="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
将路由添加到 config.js
when('/articles/search/:tag', {
templateUrl: 'views/articles/search.html'
}).
并在文章控制器中添加了搜索功能
$scope.searchart = function() {
Articles.query(function(articles) {
$scope.articles = articles;
});
};
现在,执行此代码后,当我单击索引页面中的提交按钮时,没有任何反应。
你能找到我错过了什么吗?
提前致谢!
【问题讨论】:
标签: node.js mongoose mean-stack