我已经遍布教程网站,无法正常工作
我正在尝试使用我的服务器创建一个适用于REST的角度应用程序(我下载了this并设法使其正常工作但我从头开始新的更好地了解所有内容)。因为我是个骗子,因此制作REST服务器很容易,但我对角度部分并不熟悉。
我用yeoman
创建了一个简单的目录,并将我的REST服务器放在另一个文件夹旁边,所以我有:
在app/script/app.js
我有:
'use strict'; // BTW what is this line doing?
var app = angular
.module('gardeshApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/post/index' , {
templateUrl: 'views/post/index.html',
controller : 'PostList'
})
.otherwise({
redirectTo: '/'
});
});
我想制作某种Model对象来放入收到的数据,所以我创建了一个Post模型,如:
app.factory('Post' , ['$resource'] , function($resource){
var Post = $resource('http://localhost/testApp/engine/web/post/:id' , {id : '@id'} , {update: {method: 'PUT'}});
angular.extend(Post.prototype , {
save: function (values) {
if (values) {
angular.extend(this, values);
}
if (this.id) {
return this.$update();
}
return this.$save();
}
});
});
和一个获取数据的控制器:
app
.controller('PostList', ['$scope', '$http' , '$resource',
function($scope, $http) {
// $http.get('http://localhost/testApp/engine/web/post').success(function(data){
// console.log(data); // this works fine and gets the json ed data
// });
var posts = new Post();
console.log(posts.query());
}]);
我不想自己打电话给$http.get
,我想让它变得动态,但错误说Post没有定义。
如何制作一个合适的Post对象来表示我正在提取的模型?
答案 0 :(得分:0)
您可以这样做:
app.factory('Post' , ['$resource'] , function($resource){
var Post = $resource('http://localhost/testApp/engine/web/post/:id',
{
update: {method: 'PUT'}
}
);
return Post;
});
和
app.controller('PostList', ['$scope', '$http' , 'Post',
function($scope, $http, Post) {
console.log(Post.query());
}]);
您需要在工厂中返回构建的对象,以便稍后可以依赖注入。然后在你的控制器中,你需要声明你想要Post
,而Angular会为你注入它。