Angularjs 无法在其他视图中显示角度模型的副本

Angularjs 无法在其他视图中显示角度模型的副本,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我有一个示例应用程序,我试图在一个视图中显示我的模型,并在另一个视图中编辑它。这是我的控制器: var app = angular.module('plunker', ['ngRoute']); app.controller('MainCtrl', function($scope, $location) { var self = this; this.name = 'World'; this.someData = {name: 'test'}; this.someCopyDat

我有一个示例应用程序,我试图在一个视图中显示我的模型,并在另一个视图中编辑它。这是我的控制器:

var app = angular.module('plunker', ['ngRoute']);

app.controller('MainCtrl', function($scope, $location) {
  var self = this;
  this.name = 'World';
  this.someData = {name: 'test'};
  this.someCopyData = {};

  this.theEdit = function(path){
    self.someCopyData = angular.copy(self.someData);
    $location.path(path);
  };
});

app.config(['$routeProvider', function($routeProvider) {
    $routeProvider
        .when('/', {
           templateUrl: 'foo.html',
            controller: 'MainCtrl as main'
        })
        .when('/edit', {
          templateUrl: 'fooedit.html',
          controller: 'MainCtrl as main'
        });


}]);
部分HTML非常简单:

Data: {{ main.someData.name }}
<br>
<br>
<a ng-click="main.theEdit('/edit')" >Resolve View</a>
Data:{{main.someData.name}


在这里


如何获得要显示的模型副本?这显然是一个范围问题,但我还没有找到正确的行为解释。

似乎您只有一个视图您是否尝试为同一模型创建两个视图?你能告诉我你到底想实现什么吗?

AFAIR,控制器每次都会重新创建,也就是说,当你导航到编辑时,你会得到一个新实例。您可能需要阅读,尤其是本部分:

不要使用控制器来: ... 跨控制器共享代码或状态-改用angular services


如果您查看Plunker,我想在
foo.html
中显示该模型,并在
fooedit.html
中编辑其副本。您完全正确。在问了我的问题之后,我发现了另一个类似的问题,所以我将结束这个问题。
<input name="name" type="text" ng-model="main.someCopyData.name"/>