这是一个MEAN堆栈(MongoDB,Express,Angular和Node),使用Jade作为模板引擎。
此表单正在完美地创建用户:
extends layout
block content
div(ng-controller="Controller")
.row
.col-md-6
.panel.panel-default
.panel-heading
h3.panel-title User Form
.actions.pull-right
| <i class="fa fa-chevron-down"></i><i class="fa fa-times"></i>
.panel-body
form(role="form" novalidate class="user-form")
.form-group
label First Name
input(type="text" class="form-control" placeholder="Eddard" ng-model="user.firstname")
.form-group
label Last Name
input(type="text" class="form-control" placeholder="Stark" ng-model="user.lastname")
.form-group
label Email
input(type="email" class="form-control" placeholder="estark@winteriscoming.net" ng-model="user.email")
.form-group
label Password
input(type="password" class="form-control" placeholder="super-secret-password" ng-model="user.password")
button(ng-click="reset()" class="btn btn-secondary") Reset
|
button(ng-click="update(user)" class="btn btn-primary") Save
.col-md-6
pre
| form = {{ user | json }}
pre
| master = {{ master | json }}
script.
function Controller($scope, $http) {
$scope.master = {};
$scope.update = function(user) {
$http({
method: 'POST',
url: '/users/create',
data: user,
}).success(function(response) { $scope.master = angular.copy(response); }) ;
};
$scope.reset = function() {
$scope.user = angular.copy($scope.master);
};
$scope.reset();
}
但我想使用相同的表单来编辑用户,以及创建它们。我的路线设置如下:
exports.create_user = function(req, res) {
res.render('user-form', {title: 'Create User'});
};
exports.user = function(req, res) {
User.findById(req.params.id, function(err, user) {
res.render('user-form', {title: 'Edit User', user: user});
});
};
如何将user
传递回exports.user
路由绑定到Angular使用的用户对象?
答案 0 :(得分:0)
你需要构建一个api并重新发送json,因为你正在做的是再次呈现用户表单表单。所以尝试这样的事情:
User.findById(req.params.id, function(err, user) {
res.send(user);
});
如果您想维护单页应用,那么它更多的是创建API而不是单个jade模板。