我正在学习MEAN堆栈。 制作simpe网络应用程序,我遇到了一个问题。
这是我的角度代码
<div>
<form class="somelecture" method="post" ng-submit="lecture()" name="lectureForm">
<input ng-model="lecturetext" type="text" placeholder="text">
<button type="submit" ng-disabled="lectureForm.$invalid">
Send
</button>
</form>
</div>
<div>
<ul ng-repeat="lecture in lectures">
<li>{{lecture.lecturetext}}</li>
</ul>
</div>
这是控制器
angular.module('MyApp')
.controller('AddCtrl', ['$scope', 'Addlecture', function($scope, Addlecture) {
$scope.lecture = function() {
Addlecture.lecture({
lecturetext: $scope.lecturetext
});
};
}]);
那是它的工厂
angular.module('MyApp')
.factory('Addlecture', ['$http', '$location', '$rootScope', '$cookieStore', '$alert',
function($http, $location, $rootScope, $cookieStore, $alert) {
return {
lecture: function(lecture) {
return $http.post('/api/lecture', lecture)
.success(function(data) {
$location.path('/add');
$alert({
title: '',
content: 'norm',
placement: 'bottom-left',
type: 'success',
duration: 3
});
})
.error(function() {
$alert({
title: '',
content: 'some wrong',
placement: 'bottom-left',
type: 'danger',
duration: 3
});
});
}
};
这是服务器快递上发生的事情
app.post('/api/lecture', function(req, res, next) {
var lecture = new Lecture({
lecturetext: req.body.lecturetext
});
lecture.save(function(err) {
if (err) return next(err);
res.send(200);
});
});
我可以在我的数据库中看到发布文本正确添加,但ng-repeat并不显示它们的所有((讲座文本))。 我知道我的服务器代码有问题 - 但究竟是什么。 我还删除了app.get代码 - 导致它不正确。我的app.get代码在服务器上应该是什么样的,在ng-repeat中显示所有“讲座讲座”?
答案 0 :(得分:0)
我认为你错过了标记处的标记,试试这个让我知道:
<div>
<ul ng-repeat="lecture in lectures">
<li>{{lecture.lecturetext}}</li>
</ul>
</div>
答案 1 :(得分:0)
到目前为止,我发现您只是发送了一条没有数据从服务器发送到客户端的响应,您如何将讲座测试列表传递给客户端?
我的建议是发送一个json响应并在你的$ resource对象中读取它的流程如下:(假设你使用的是moongose)
app.post('/api/lecture', function(req, res, next) {
var lecture = new Lecture({
lecturetext: req.body.lecturetext
});
lecture.save(function(err) {
if (err) return next(err);
//nested operation, save and get list of lectures
lecture.find({param: anyParam }, function(err, doc){
if(err){
return next(err);
}else{
//send information as json
res.send(200, {data: doc});
}
});
});
});
在客户端可能是这样的:
var LectureEndPoint = $resource('/api/lecture');
var lecture = new LectureEndPoint();
lecture.$save(function(res){
//return the value or do whatever you need to do to pass this information to your controller
});