将JSON结果放入Javascript对象中

时间:2015-12-02 10:54:56

标签: javascript angularjs

我有一个应用程序,它读取Javascript对象数组的值。我想将一些JSON放入该对象数组中,但我不确定我是否正确处理它。

The JSON that I am using

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
                            });
                        });
                };

3 个答案:

答案 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);