Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs:范围继承和表单提交_Javascript_Forms_Angularjs - Fatal编程技术网

Javascript Angularjs:范围继承和表单提交

Javascript Angularjs:范围继承和表单提交,javascript,forms,angularjs,Javascript,Forms,Angularjs,假设我有一些已经加载的用户数据。现在存储在mainCtrl范围内的“用户”模型中。然后,我想要一个用户更新表单,该表单最初填充此用户数据,但仅在表单成功提交后更新“用户”模型 我完全错了?我在分配引用时遇到了困难,因此两个模型(“用户”和“更新者”)无法独立更新 HTML <div ng-controller="mainCtrl"> <form ng-controller="updateCtrl" ng-submit='submit()'> <

假设我有一些已经加载的用户数据。现在存储在mainCtrl范围内的“用户”模型中。然后,我想要一个用户更新表单,该表单最初填充此用户数据,但仅在表单成功提交后更新“用户”模型

我完全错了?我在分配引用时遇到了困难,因此两个模型(“用户”和“更新者”)无法独立更新

HTML

<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);
}