【问题标题】:Setting object data in nested for loop在嵌套的 for 循环中设置对象数据
【发布时间】:2016-01-16 00:13:22
【问题描述】:

我有一个名为 jobs 的范围变量,它是每个部门及其数据的对象数组。

[ “会计”:{ “富”:“富”, “酒吧”:酒吧“ }, “交货”: { “富”:“富”, “酒吧”:“酒吧 } ]

HTML5 日期输入要求所有日期都转换为使用 javascript 中的 new Date() ,即使它们是指定的正确 yyyy-mm-dd 格式。我可以手动输入每个需要转换的日期,但我想使用嵌套的 foreach 来执行此操作,因为我有很多日期要转换。

angular.forEach($scope.job, function(value, key){
    angular.forEach(value, function(innerValue, innerKey){
       if(typeof(innerValue) === "string"){
         var matches = innerValue.match(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}/);
         if(matches){
               // Need to set $scope.job.key.innerKey = new Date($scope.job.key.innerKey) here 
         }
       }
     });
  });

我的问题是我不知道如何访问 $scope.job 对象的 key 和 innerKey 值。如何编辑正在循环的当前项目?在这种情况下使用“this”的文档几乎找不到。

【问题讨论】:

    标签: javascript angularjs foreach


    【解决方案1】:

    您只需对变量属性名称使用[] 对象表示法

    if(matches){
       value[innerKey] = new Date(value[innerKey]);
    }
    

    【讨论】:

      【解决方案2】:

      另一种方法是制作一个包装日期输入的指令,并将转换逻辑放在该指令的控制器中。这样,对于自定义日期输入指令的所有实例,所有循环都将由框架隐式完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 2012-05-02
        • 1970-01-01
        • 2018-11-27
        • 2019-04-24
        • 2015-01-28
        • 1970-01-01
        相关资源
        最近更新 更多