在我的angular.js控制器中,我想通过传入它来选择与$ routeParams.propertyID匹配的数组编号。以下工作原理:
$scope.selectedProperty = $scope.all_properties[$routeParams.propertyID];
BUT 有数组,1 = 0,所以它选择了我想要的前一个数组。如何通过+1来选择正确的数组?我试过以下没有运气:
$scope.selectedProperty = $scope.all_properties[$routeParams.propertyID + 1];
$scope.selectedProperty = $scope.all_properties[($routeParams.propertyID + 1)];
$scope.selectedProperty = $scope.all_properties[($routeParams.propertyID) + 1];
干杯
答案 0 :(得分:1)
你的属性可能是一个字符串,尝试在进行数学之前向int添加一个解析
如果你正在做
var calc = "1" + 1 // calc = "11"
如果您不确定,请添加console.log($ routeParams.propertyID)并检查您是否为firebug控制台
$scope.selectedProperty = $scope.all_properties[parseInt($routeParams.propertyID,10) + 1];
如果你正在读取pos而不是pos零,你应该减去
$scope.selectedProperty = $scope.all_properties[parseInt($routeParams.propertyID,10) - 1];
答案 1 :(得分:0)
如果propertyID是一个字符串,您可能希望将其转换为添加的数字
$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID + 1];
或者,如果布兰登的评论是正确的
$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID - 1];
请注意,在两种情况下,将字符串转换为数字之前的加号(+
)
答案 2 :(得分:0)
您的上下文中有两个问题:
为什么添加?你不应该减去一个吗?
如果数组的零对应于ID&#39> 一个,那么你必须做"减去一个":
+$routeParams.propertyID - 1
字符串或数字?
可能您的ID是字符串,而数组索引是数字。在这种情况下,这应该工作:
$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID - 1];
但是,如果你说你的第一个代码有效,也许你没有"数组",但是哈希(或者#34;字典&#34) ;)
在这种情况下,在添加或减去一个之后,必须将结果转换回字符串:
$scope.selectedProperty = $scope.all_properties[(+$routeParams.propertyID - 1) + ""];