Javascript Angularjs:范围继承和表单提交
假设我有一些已经加载的用户数据。现在存储在mainCtrl范围内的“用户”模型中。然后,我想要一个用户更新表单,该表单最初填充此用户数据,但仅在表单成功提交后更新“用户”模型 我完全错了?我在分配引用时遇到了困难,因此两个模型(“用户”和“更新者”)无法独立更新 HTMLJavascript Angularjs:范围继承和表单提交,javascript,forms,angularjs,Javascript,Forms,Angularjs,假设我有一些已经加载的用户数据。现在存储在mainCtrl范围内的“用户”模型中。然后,我想要一个用户更新表单,该表单最初填充此用户数据,但仅在表单成功提交后更新“用户”模型 我完全错了?我在分配引用时遇到了困难,因此两个模型(“用户”和“更新者”)无法独立更新 HTML <div ng-controller="mainCtrl"> <form ng-controller="updateCtrl" ng-submit='submit()'> <
<div ng-controller="mainCtrl">
<form ng-controller="updateCtrl" ng-submit='submit()'>
<input ng-model='updateUser.firstName'>
<input ng-model='updateUser.email'>
</form>
</div>
谢谢,这正是我需要的。我现在遇到的唯一问题是,ng model='user.firstName'的实例在成功更新后不会在其他地方更新$scope.$apply()给了我一个“已经消化”的错误。我不明白。你需要创建一个提琴。现在我们开始:表单提交后视图不会更新$作用域。$apply()出现错误。检查控制台,模型“user”正在更新。
updatetrl
创建不同的作用域,这意味着新的$scope。user
在子作用域内创建。若要解决此问题,请将模型包装到对象中。这是最新的提琴:老实说,我不明白其中的区别!但是我已经占用了你足够的时间,所以非常感谢你。我想投你一票,但我没有这个名声。我会在我可以的时候。。。
var userData = {
'firstName': 'Chris',
'email': 'test@test.com'
}
app.controller('mainCtrl', ['$scope', '$http',
function($scope, $http) {
$scope.user = userData;
};
]);
app.controller('updateCtrl', ['$scope', '$http',
function($scope, $http) {
$scope.updateUser = $scope.user;
$scope.submit = function () {
// Submit form to server and on success, update $scope.user
}
};
]);
$scope.updateUser = angular.copy($scope.user);
$scope.submit = function () {
// Submit form to server and on success, update $scope.user
..
..
$scope.user = angular.copy($scope.updateUser);
}