我有一个应用程序,它读取Javascript对象数组的值。我想将一些JSON放入该对象数组中,但我不确定我是否正确处理它。
Javascript对象数组:
$scope.tijdvakken = [{
begintijd: '',
eindtijd: ''
}]
我正在使用函数检索JSON并将其作为tijdvak传递给HTML,如下所示:
<div id="tijdvakken" ng-repeat="tvak in tijdvak">
<p ng-model="tijdvakken.begintijd">{{ tvak.begintijd }}</p>
<p ng-model="tijdvakken.eindtijd">{{ tvak.eindtijd }}</p>
</div>
我可以在我的页面上看到结果,但它们没有被放入对象中。我在这里做错了什么,并且可能有一种更简单的方法将结果放入没有HTML的对象中?
编辑:
我检索JSON数据的函数:
afsprakenService.getObject = function (link){
return $http.get(tijdvakkenmockup);
};
$scope.getTijdvak = function() {
afsprakenService.getObject()
.success(function(tijdvak) {
$rootScope.tijdvak = tijdvak;
$rootScope.alerts.push({
type: 'success',
msg: 'Retrieved'
});
})
.error(function(error) {
$rootScope.alerts.push({
type: 'danger',
msg: 'Error retrieving! ' + error.message
});
});
};
答案 0 :(得分:1)
您不应在ng-model
元素上使用<p>
。 ng-model
仅适用于表单元素。例如<input>
,<select>
或<textarea>
。
您可能希望改为使用ng-bind
。
同样在您的$ scope中,您使用tijdvakken
但在html中是tijdvak,如ng-repeat="tvak in tijdvak"
答案 1 :(得分:0)
遍历您的JSON数据(也是一个对象数组)并将array.push
循环到您的新数组中。或者,您可以将JSON指向新阵列。
for ( var i = 0; i < $scope.tijdvak.length; i++){
$scope.tijdvakken.push($scope.tijdvak[i]);
}
答案 2 :(得分:0)
实际上我不认为你有问题,你已经把响应数据放到了rootScope.tijdvak中。但我也建议你使用$ scope而不是$ rootScope。
$scope.tijdvakken = tijdvak;
您可以使用console.log 内部成功函数来查看JSON对象的值
console.log('tijdvak', $scope.tijdvakken);