2013-06-25 14 views
8

Đây là tuyến đường của tôi:Không thể tiêm các dữ liệu quyết tâm vào điều khiển của tôi

$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; 
     } 
    } 
}); 

đây là bộ điều khiển của tôi:

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

}); 

và đây là dịch vụ blog:

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); 
     }); 
    } 
    }; 
}); 

Hàm defer.resolve được gọi, mẫu của tôi được tải và nội dung của biến kết quả là chính xác; nhưng tôi nhận được lỗi này:

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

Khi tôi cố gắng để tải quan điểm trở lại sau khi nhận được lỗi trên, chúng tôi nhận được lỗi này:

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)

tôi đang thiếu gì ở đây? Tôi đã sử dụng cùng một cú pháp trước đây và nó hoạt động tốt

Trả lời

15

Hóa ra rằng tôi đã bao gồm bộ điều khiển hai lần. Trong tuyến đường và cũng có trong Mẫu HTML. Tôi đã xóa nó khỏi mẫu HTML ngay bây giờ và mọi thứ hoạt động!

+2

Bạn đã lưu ngày của tôi !!!!! – coure2011

+0

Đây cũng là vấn đề của tôi, đã cố gắng tìm ra nó theo lứa tuổi. Cảm ơn! – sugarwaffle

+0

wow, tôi đã xóa ng-controller khỏi html của mình và mọi thứ bắt đầu hoạt động. khó khăn một .. –

Các vấn đề liên quan