Angularjs 将对象中的值获取到ng模型中

Angularjs 将对象中的值获取到ng模型中,angularjs,angularjs-resource,angularjs-ng-model,Angularjs,Angularjs Resource,Angularjs Ng Model,我拥有获取对象的资源: .factory('Product', ['$resource', function($resource) { return $resource( 'api/product/:id', { Id: '@Id' }, { update: { method: 'PUT', isArray: false } }); }]) 我使用'resolve'在/edit/product/:sku中从ng路由调用此资源 .config([

我拥有获取对象的资源:

.factory('Product', ['$resource', function($resource) {
    return $resource( 'api/product/:id', { Id: '@Id' }, { 
            update: { method: 'PUT', isArray: false }
        });
}])
我使用'resolve'在/edit/product/:sku中从ng路由调用此资源

.config(['$routeProvider',  function($routeProvider) {
  $routeProvider.
    when('/index', {
      templateUrl: 'lord/partials/main'
    }).
    when('/product/edit/:SKU', {
      controller: 'EditCtrl',
      templateUrl: function(params){ return 'lord/partials/product/edit' },
      resolve: {
        product: function( Product, $routeParams ){
            return Product.get({ id: 101 }).$promise;
        }
      }
    }).
    otherwise({
      redirectTo: '/index'
    });
}]);
在我的控制器中,我成功接收产品:

.controller('EditCtrl', ['$scope', 'product',  function ($scope, product) {

 console.log(product.measures);  // I get the object -> Object {weight: 100, length: 200, width: 180, height: 200}   

//Initialize object:
$scope.datos = {};
$scope.datos.measures = {};
但是,当我想将该对象复制到范围变量时,它就不起作用了。scope变量是$scope.datos,它是一个对象,形式为。我按如下方式填充此对象:

      <div class="col-md-1">Peso</div>
      <div class="col-md-2">
       <div class="input-group">
        <input type="number" class="form-control" ng-model="datos.measures.weight" >
        <span class="input-group-addon">gr</span>
      </div>
      </div>
      <div class="col-md-1">Largo</div>
      <div class="col-md-2">        
       <div class="input-group">
        <input type="number" class="form-control" ng-model="datos.measures.lenght">
        <span class="input-group-addon">cm</span>
      </div>
      </div>
      <div class="col-md-1">Ancho</div>
      <div class="col-md-2">
      <div class="input-group">
        <input type="number" class="form-control" ng-model="datos.measures.width">
        <span class="input-group-addon">cm</span>
      </div>

      </div>
      <div class="col-md-1">Alto</div>
      <div class="col-md-2">
      <div class="input-group">
        <input type="number" class="form-control" ng-model="datos.measures.height">
        <span class="input-group-addon">cm</span>
      </div>
以及:

以及:

这些都不起作用

但是,将product.measures.width指定给任何变量(如$scope.dwidth)都有效。但这不是我想要的,因为我的目标要复杂得多

如何将接收到的product.measures对象的值复制到另一个对象$scope.datos.measures中,并在with ng模型中反映该值


谢谢。

我能够确定发生了什么。我正在呼叫另一个正在重置这些值的控制器

因此路由控制器被称为EditCtrl,但在此之后,页面中的控制器会重置这些值

之后,使用以下代码就足够了:

angular.copy(product.measures,$scope.datos.measures);
这样做的伎俩和复制整个对象


此外,由于Javascript属性,我不得不将tue$scope.datos.measures.length名称更改为$scope.datos.measures.len。

我怀疑这与绑定中有两个点以及为范围赋值的方式有关。看看这个经常被引用的答案,谢谢你的评论。我看了你推荐的帖子。在另一个页面中,我能够在另一个控制器中分配值,例如$scope.stock.total=10,因此支持两个点。
$scope.datos.measures = angular.copy(product.measures);
$scope.datos.measures = product.measures;  
$scope.datos.measures.weight   =  product.measures.weight;
angular.copy(product.measures,$scope.datos.measures);