3

私は最近AngularJSの実験を始めました。MySQLデータベースを更新する単純な html5 アプリケーションを構築しています。

[index.html]

<!DOCTYPE html>
<html ng-app="MyProject">
<head>
    <title>My Project</title>
    <link rel="stylesheet" href="css/main.css" type="text/css">
    <script src="lib/angular-1.0.1.js"></script>
    <script src="lib/angular-resource-1.0.1.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/services.js"></script>
</head>
<body>
    <div id="main-content" ng-view>
</body>
</html>

私は Slim フレームワークを使用して Rest インターフェイスを作成しました。現在、私のデータベースには、id と title の 2 つの列を持つ location_types という名前のテーブルが 1 つあります。ブラウザーで Rest サービスをテストしたので、api/locationtypes の下に次の JSON が表示されます。

[{"id":"1","title":"Airport"},{"id":"2","title":"Bus Station"}]

次のコードを使用して、AngularJS でサービスを作成します。

[services.js]

angular.module('myDB', ['ngResource']).
factory('LocationTypes', function($resource) {
    var LocationTypes = $resource('http://localhost/project/api/locationtypes', {}, { query: {method: 'GET', isArray: true}});
    return LocationTypes; 
});

また、次のコードを使用してアプリ モジュールを作成します。

[controllers.js]

angular.module('MyProject', ['myDB']).
config(function($routeProvider) {
    $routeProvider.
        when('/locationtypes', {controller: LocationTypesCtrl, templateUrl:'forms/locationtypes.html'}).
        otherwise({redirectTo:'/locationtypes'});
});


function LocationTypesCtrl($scope, LocationTypes)
{
    $scope.locationTypes = LocationTypes.query();
}

問題は、サービスにクエリを実行しても結果が得られないことです。デバッグすると、locationTypes配列の長さがゼロになります。最新の AngularJS リリース [1.0.1] を使用しています。何が恋しいですか?

4

2 に答える 2

1

URL は本当に「http://localhost/project/api/locationtypes」ですか、それとも外部サーバーですか? 外部の場合は、CORS (クロス オリジン) の問題があります。何かが欠けていない限り、それは私には正しいように見えます。

于 2012-06-28T21:48:59.853 に答える