8

Tôi có đơn đăng ký RESTful với Laravel 4Angular JS.

Trong điều khiển Laravel tôi,

public function index() { 

    $careers = Career::paginate($limit = 10); 

    return Response::json(array(
    'status' => 'success', 
    'message' => 'Careers successfully loaded!', 
    'careers' => $careers->toArray()), 
    200 
); 
} 

Và kịch bản góc,

var app = angular.module('myApp', ['ngResource']); 

app.factory('Data', function(){ 
    return { 
     root_path: "<?php echo Request::root(); ?>/" 
    }; 
}); 

app.factory('Career', [ '$resource', 'Data', function($resource, Data) { 
    return $resource(Data.root_path + 'api/v1/careers/:id', { id: '@id'}); 
}]); 

function CareerCtrl($scope, $http, Data, Career) { 

    $scope.init = function() { 
     $scope.careers = Career.query(); 
    }; 
} 

Ở đây tôi chút nhầm lẫn để xử lý các dữ liệu phản ứng để gán cho biến phạm vi, bây giờ tôi đang nhận được mảng trống [] trong $scope.careers. Và cũng có thể Làm thế nào tôi có thể xử lý thành công và lỗi hiển thị một số thông điệp như bình thường $http service sau,

$scope.init = function() { 

    Data.showLoading(); // loading progress 
    $http({method: 'GET', url: Data.root_path + 'api/v1/careers'}). 
    success(function(data, status, headers, config) { 
     Data.hideLoading(); 
     $scope.careers = data.careers.data; 
    }). 
    error(function(data, status, headers, config) { 

     if(data.error.hasOwnProperty('message')) { 
      errorNotification(data.error.message); 
     } else { 
      errorNotification(); 
     } 

     $scope.careers = []; 
    }); 
}; 

Xem yêu cầu của tôi trong giao diện điều khiển sử dụng $ tài nguyên.

enter image description here

Trả lời

15

nhiều Hãy thử điều này:

app.factory('Career', [ '$resource', 'Data', function($resource, Data) { 
    return $resource(Data.root_path + 'api/v1/careers/:id', { id: '@id'}, { 
    query: { 
     isArray: false, 
     method: 'GET' 
    } 
    }); 
}]); 


Career.query(function(res) { 
    $scope.careers = res.careers.data; 
}, function(error) { 
    // Error handler code 
}); 
+0

Cảm ơn, bạn đã tiết kiệm thời gian của tôi ... – devo

+0

giống như ở đây đang đấu tranh cho giờ – Awena

2

Xem:. http://docs.angularjs.org/api/ngResource $ nguồn

$scope.init = function() { 
    var success = function(careerList, getResponseHeaders){ 
     $scope.careers = careerList; 
    }; 
    var failure = function(data){ 
     // TODO 
    }; 
    Career.query(success, failure); 
}; 

Do quirks này và phiền toái khác mà tôi sẽ đề nghị sử dụng Restangular thay vì tài nguyên mặc định $. Nó làm cho cuộc sống dễ dàng hơn

+0

câu hỏi đầu tiên của tôi, Tại sao tôi nhận được mảng rỗng [] trong $ scope.careers? – devo

+0

Không chắc chắn, Nó có thể là mặc định khi lỗi xảy ra ... – fabrizioM

+0

Nó không phải là thất bại.Xem ảnh chụp màn hình, tôi nhận được tất cả các giá trị, làm thế nào tôi có thể ánh xạ này đến phạm vi biến? – devo

Các vấn đề liên quan