Ng-model不更新控制器中的值
Ng-model not updating the value in the controller
我有一个这样的表单:
<form name="UserForm" class="form-horizontal" ng-submit="setUser()" >
<input id="firstname" name="firstname" type="text" placeholder="add a firstname.." class="form-control input-md" ng-model="user.firstname" required>
<button id="Submit" name="Submit" class="btn btn-primary" ng-click="showMessage = 'false'" ng-disabled="UserForm.$invalid">Save</button>
</form>
和在我的控制器中:
customModule2.controller('UserController',function ($state, $stateParams, $location, $log,$http, $scope, userFactory , appSettings) {
$scope.user = {};
$scope.setUser = function () {
if($scope.UserForm.$valid) {
userFactory.addUser($scope.user)
.success(function (data) {
console.log("controller set : " + this.user.firstname);
$scope.addMessage = data;
$log.log('');
})
.error(function (data, status) {
console.log("user firstname : " + $scope.user.firstname);
});
$scope.UserForm.$setPristine();
}
};
)};
现在,当我输入firstname时,我可以看到它被添加,但当我在控制台检查时,控制器中的值是空的。
任何帮助都将非常感激。谢谢
EDIT:
我有这个控制器,它的代码几乎是一样的,它工作得很好:
customModule2.controller('ProjectController',function ($state, $stateParams, $location, $log,$http, $scope, projectFactory , appSettings) {
$scope.project = {};
$scope.setProject = function () {
if($scope.ProjectForm.$valid) {
projectFactory.addProject($scope.project)
.success(function (data) {
$scope.addMessage = data;
console.log('here' + $scope.project.name);
})
.error(function (data, status) {
$scope.addMessage = "Erreur lors de l'ajout : " + data + ' ' + status;
console.log('here');
$log.log(data.error + '' + status);
});
$scope.showMessage = true;
$scope.ProjectForm.$setPristine();
}
};
可能是$scope
的问题吗?
可能success(...)
和error(...)
函数有不同的作用域(不同的$scope
变量)。要解决这个问题,可以缓存该值。
customModule2.controller('UserController',function ($state, $stateParams, $location, $log,$http, $scope, userFactory , appSettings) {
$scope.user = {};
$scope.setUser = function () {
var firsName = $scope.user.firstname;
if($scope.UserForm.$valid) {
userFactory.addUser($scope.user)
.success(function (data) {
console.log("controller set : " + this.user.cin);
$scope.addMessage = data;
$log.log('');
})
.error(function (data, status) {
console.log("user firstname : " firstName);
});
$scope.UserForm.$setPristine();
}
};
)};
您必须尝试在控制台中使用
打印您的用户名:console.log("controller set : ", $scope.user.firstname);
连接console.log("controller set : " + $scope.user.firstname)
试图将您的user.firstname
对象转换为字符串。
相关文章:
- 如何从另一个控制器更新控制器的ng重复模型
- 可以从控制器更新工厂,但不能从指令更新
- ASP.NET Web API 控制器更新行
- 从另一个 Angular 控制器更新 ng-repeat
- 从控制器更新值时出现 ng-if 问题
- 离子和角度 - 从控制器更新/刷新视图
- AngularJS:从另一个控制器或JS调用控制器更新功能
- 使用滑块控制器更新地图数据/阴影?包括示例
- angularJS$watch在使用控制器更新数据时不在指令中工作
- ng模型没有从控制器更新到视图
- AngularJS从其他控制器更新$scope
- 从任何观察到的控制器更新模板
- 从父控制器更新服务值
- Ember.js从应用控制器更新模型
- AngularJS:如何从子控制器更新指令作用域
- 如何在Ember.js中使用不同的控制器更新hasMany
- 从多个控制器更新页面部分的最佳方式
- 在AngularJS中跨控制器更新$scope变量
- 在 CodeIgniter 中使用 AJAX 从控制器更新 DIV 框
- 从另一个控制器更新ng-repeat上的复杂滤波器