Javascript 角度注入(未知提供程序)
我试图从我的服务器api中获取一些json数据。url为/contacts。 我得到一个关于未知提供者的错误,但我不明白我在这里做错了什么。我再次修改了代码,但似乎再次发生Javascript 角度注入(未知提供程序),javascript,angularjs,Javascript,Angularjs,我试图从我的服务器api中获取一些json数据。url为/contacts。 我得到一个关于未知提供者的错误,但我不明白我在这里做错了什么。我再次修改了代码,但似乎再次发生 (函数(){ var app=angular.module('test',['ngRoute','Contacts','$http']); app.config(函数($routeProvider,$locationProvider){ $locationProvider.html5Mode(true); $routePr
(函数(){
var app=angular.module('test',['ngRoute','Contacts','$http']);
app.config(函数($routeProvider,$locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.当(“/”时{
templateUrl:“partials/main.html”,
控制器:“contactsCtrl”
})
。否则({重定向至:“/”});
});
app.service('Contacts',function($scope,$http){
this.data=null;
this.all=函数(){
$http.get('/contacts')。
成功(功能(数据){
$scope.contacts=数据;
})
};
});
应用控制器('contactsCtrl',功能($scope,Contacts){
Contacts.all().query(函数(数据){
$scope.contacts=数据;
});
});
}());代码>
名字
角度模块的工作原理是将它们注入到您的应用程序中
var app = angular.module('test', ['ngRoute']);
你需要做的事情是这样的
var app = angular.module('test', ['ngRoute','http']);
下面是我目前在一个项目中使用的一个工作http请求的示例
var data = $.param({
workers: JSON.stringify({
user_name: "name",
password: "work",
email: "work@work"
})
});
$http.post("http://ec2-xx-x-xx-xx.compute-1.amazonaws.com/api/user/reg", data).success(function(data, status) {
$scope.user = data.user_name;
$scope.email = data.email;
$scope.access_token = data.access_token;
});
您当前正在此处将联系人作为新模块注入:
var app = angular.module('test', ['ngRoute', 'Contacts', '$http']);
您不需要它,因为Contacts是一项服务,是同一模块的一部分。将此行更新为:
var app = angular.module('test', ['ngRoute', '$http']);
问题是您试图将$scope
注入到服务中
作用域是应用程序控制器和视图之间的粘合剂
请看一下这本书
而不是
app.service('Contacts', function($scope, $http) {
this.all = function() {
$http.get('/contacts').
success(function(data) {
$scope.contacts = data;
})
};
});
试一试
而不是
app.controller('contactsCtrl', function($scope, Contacts) {
Contacts.all().query(function(data) {
$scope.contacts = data;
});
});
试一试
我现在按照你的建议修改了守则。它一直在发生。任何想法。非常感谢您的时间。Contacts
是一项服务,服务不能是模块的依赖项,所以只需从这里将其删除angular.module('test'、['ngRoute'、'Contacts'、'http'])代码>也非常感谢
app.controller('contactsCtrl', function($scope, Contacts) {
Contacts.all().query(function(data) {
$scope.contacts = data;
});
});
app.controller('contactsCtrl', function($scope, Contacts) {
Contacts.all().then(function(data) {
$scope.contacts = data;
});
});