2

この記事Laravel 4 + angular.js 1.0.7を読んで、アプリケーションにページネーションを実装しようとしています。

私のコードは、

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

app.service( 'Post', [ '$resource', function( $resource ) {
   return $resource( 'posts/:id', { id: '@id'} );
}]);

function PostCtrl($scope, $http, Post) {
   $scope.init = function () {
     console.log(Post); // returns empty object
     $scope.posts = Post.query(); // Post.query is not a function
     // $scope.posts = Post.get(); // Post.get is not a function
   }
}

で空のオブジェクトを取得するのはなぜconsole.log(Post);ですか? そして、なぜPost.query is not a functionエラーが表示されるのですか? どうすれば解決できますか?

編集: 2 つのファクトリ サービス間の通信

今、私は2つのファクトリーサービスを持っています。

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

app.factory( 'Post', [ '$resource', function( $resource ) {
   return $resource( 'posts/:id', { id: '@id'} );
}]);

工場サービスへのアクセス方法を教えData.root_pathてください。Post

4

1 に答える 1

4

サービスの代わりにファクトリを使用したいと思います。つまり、次のようになります。

app.factory( 'Post', [ '$resource', 'Data', function( $resource, Data ) {
   return $resource( Data.root_path + 'posts/:id', { id: '@id'} );
}]);

このリンクは違いを示しています:

http://blog.manishchhabra.com/2013/09/angularjs-service-vs-factory-with-example/

于 2013-10-29T20:43:45.033 に答える