我有一个名为jobs的范围变量,它是每个部门及其数据的对象数组。
[ “会计”:{ “foo”:“foo”, “酒吧”:酒吧" }, “交货”: { “foo”:“foo”, “酒吧”:“酒吧 } ]
HTML5日期输入要求所有日期都转换为使用javascript中的新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
}
}
});
});
我的问题是我不知道如何访问我来到的key和innerKey值的$ scope.job对象。如何编辑循环的当前项?在这种情况下使用“this”的文档几乎不可能找到。
答案 0 :(得分:0)
您只需要对变量属性名称使用[]
对象表示法
if(matches){
value[innerKey] = new Date(value[innerKey]);
}
答案 1 :(得分:0)
另一种方法是制作一个包含日期输入的指令,并将转换逻辑放在该指令的控制器中。这样,对于自定义日期输入指令的所有实例,所有循环都将由框架隐式完成。