AngularJS 和休息服务

2024-04-18

我最近开始尝试AngularJS。我正在构建一个简单的 html5 应用程序来更新MySQL数据库。

[索引.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 Interface。我的数据库当前有一张名为 location_types 的表,其中包含两列 id 和 title。我已经在浏览器中测试了 Rest 服务,因此在 api/locationtypes 下我得到以下 JSON:

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

我使用以下代码在 AngularJS 中创建服务:

[服务.js]

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

我还使用以下代码来创建应用程序模块:

[控制器.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]。我想念什么?


您的 URL 真的是“http://localhost/project/api/locationtypes”还是外部服务器? 如果它是外部的,那么您就会遇到 CORS(跨源)问题。除非我错过了一些东西,否则它对我来说看起来是正确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 和休息服务 的相关文章

随机推荐