我还是Angular的新手,在尝试编写一些简单的代码来更新用户信息时只是碰壁了。单击该按钮时,如果我将其写入控制台,$ scope.user会显示更新的值,但是$ scope.user。$ update()仍然传递旧值。
这是观点。
<form role="form" class="profile-form">
<h1>Account Settings</h1>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="userEmail" ng-model="user.email" disabled>
</div>
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" id="name" ng-model="user.name">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="userPassword" placeholder="Password">
</div>
<button type="submit" class="btn btn-default" ng-click="updateInfo()">Submit</button>
<pre>user={{user | json}}</pre>
</form>
这是角度控制器中包含的内容。
angular.module('mean.users')
.controller('UserController', ['$scope', '$routeParams', '$location', 'Global', 'User', function ($scope, $routeParams, $location, Global, User) {
$scope.global = Global;
$scope.find = function () {
User.get(function (user) {
$scope.user = user;
});
};
$scope.updateInfo = function() {
var user = $scope.user;
user.$update();
console.log(user);
};
}]);
我有一个控制器来进行实际更新。
exports.update = function (req, res) {
var user = req.user;
user.save(function (err) {
if (err) {
res.status(500).send({
errors: err.errors
});
} else {
res.jsonp(user);
}
});
}
控制器中保存的用户对象是否应包含我所做的最新更改?