【问题标题】:How to copy entire object in angularjs?如何在angularjs中复制整个对象?
【发布时间】:2015-08-27 11:02:58
【问题描述】:

作为 Angular 的新手,在复制 json 数据时卡住了,我需要将整个 json 对象复制到剪贴板,然后再粘贴。 已经通过 ngClip 完成了它,但它不会复制整个对象,否则它会复制对象名称。以下是我到目前为止所做的:

<label>Copy #1</label>

<button class="btn btn-default" clip-copy="copy1">Copy!</button>
<script>
   var myapp = angular.module('myapp', ["ngClipboard"]);

   myapp.config(['ngClipProvider', function(ngClipProvider) {
      ngClipProvider.setPath("//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.swf");
   }]);

   myapp.controller('myctrl', function($scope) {
      $scope.copy1 = {};
      $scope.copy1.Name = "ABC";
      $scope.copy1.age = 24;
      $scope.copy1.City = "Pittsburgh";

   });
</script>

点击复制!按钮总是复制copy1,我希望它复制整个对象。但是,如果我在clip-copy中给出copy1.Name,它会复制ABC。 任何线索都将不胜感激。

【问题讨论】:

标签: json angularjs


【解决方案1】:

使用JSON.stringify(obj) 将您的对象转换为字符串。它会返回一个字符串,您可以将其复制到剪贴板上。

【讨论】:

    【解决方案2】:

    这可能是因为copy1 是一个对象。尝试使用angular.toJson() 将对象转换为字符串。像这样:

    <label>Copy #1</label>
    
    <button class="btn btn-default" clip-copy="test()">Copy!</button>
    <script>
       var myapp = angular.module('myapp', ["ngClipboard"]);
    
       myapp.config(['ngClipProvider', function(ngClipProvider) {
          ngClipProvider.setPath("//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.swf");
       }]);
    
       myapp.controller('myctrl', function($scope) {
          $scope.copy1 = {};
          $scope.copy1.Name = "ABC";
          $scope.copy1.age = 24;
          $scope.copy1.City = "Pittsburgh";
    
          $scope.test = function () {
            return angular.toJson($scope.copy1);
          }
    
       });
    </script>
    

    Plunker:http://plnkr.co/edit/KISecLdBfOMxVPFT6MMZ?p=preview

    【讨论】:

      【解决方案3】:

      使用 angular.copy($scope.copy1,$scope.target) 。它会将您的整个 copy1 对象复制到目标对象。

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 2017-07-10
        相关资源
        最近更新 更多