2013-06-25 19 views
8

への決意データを挿入することはできませんこれは私のルートです:は私のコントローラ

$routeProvider.when('/blog/bearbeiten/:id', { 
    templateUrl: 'adminpages/blog/beitragbearbeiten', 
    controller: 'blogEditPostController', 
    resolve: { 
     loadData: function($q, $route, blog) { 
      var defer = $q.defer(); 
      var post = $route.current.params.id; 

      var fn = function(result) { 
       defer.resolve(result); 
      }; 
      blog.getPost(post, fn); 
      return defer.promise; 
     } 
    } 
}); 

これは私のコントローラである:

app.controllers.controller('blogEditPostController', function(loadData) { 

}); 

、これはブログサービスです:

app.services.factory('blog', function ($http) { 
    return { 
    getPosts: function(page, fn) { 
     $http.get('/api/posts/' + page). 
      success(function(data) { 
       fn(data); 
      }); 
    }, 
    getPost: function(id, fn) { 
     $http.get('/api/post/' + id). 
     success(function(data) { 
       console.log(data); 
       fn(data); 
     }); 
    } 
    }; 
}); 

defer.resolve関数が呼び出され、テンプレートがロードされ、結果変数の内容が正しいことを示します。しかし、私はこのエラーを取得する:

Error: Unknown provider: loadDataProvider <- loadData at Error() at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2765:19 at Object.getService [as get] (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2891:39) at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2770:45 at getService (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2891:39) at invoke (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2909:13) at Object.instantiate (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2943:23) at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:5368:28 at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:4937:17 at forEach (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:155:20) angular.js:6349

私は上記のエラーを取得した後、再びビューをロードしようとこのエラーが出る:

Error: Circular dependency: at Error() at getService (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2884:17) at invoke (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2909:13) at Object.instantiate (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:2943:23) at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:5368:28 at http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:4937:17 at forEach (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:155:20) at nodeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:4922:11) at compositeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:4550:15) at compositeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js:4553:13)

は、私はここで何をしないのですか?以前は同じ構文を使用していましたが、うまく機能しました。

答えて

15

コントローラーを2回追加しました。ルート内およびHTMLテンプレート内に表示されます。私は今、HTMLテンプレートから削除しました。

+2

あなたは私の日を保存しました!!!!! – coure2011

+0

これは私の問題でもあり、年を取ってそれを理解しようとしていました。ありがとう! – sugarwaffle

+0

うわー、私は自分のhtmlからng-controllerを削除しています。トリッキーな一.. –

関連する問題