我试图从json文件中获取数据。
我有一个文件,factory1.js
myApp.factory('mainInfo', [
'$http',
function($http) {
return {
get: function(){
$http.get('data.json');
}
}}])
然后我有另一个文件view1.js
'use strict';
angular.module('myApp.view1', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view1', {
templateUrl: 'view1/view1.html',
controller: 'View1Ctrl'
});
}])
.controller('View1Ctrl', [
'$scope',
'$http',
'mainInfo',
function($scope, $http, mainInfo) {
mainInfo.get("data.json")
.then(function(response) {
$scope.myWelcome = response.data;
console.log($scope.myWelcome)
});
}]);
我有一个文件夹,其中包含每个json,factory和controller文件。
当我运行它时它返回的错误说...
angular.js:13708 Error: [$injector:unpr] Unknown provider: mainInfoProvider <- mainInfo <- View1Ctrl
我哪里错了?
答案 0 :(得分:2)
var app=angular.module('myApp.view1', ['ngRoute']);
app.factory('mainInfo', [
'$http',
function($http) {
return {
get: function(){
$http.get('data.json');
}
}}])
定义一个变量并将模块分配给该变量并将变量绑定到factory.if你有模块名称myApp将该模块注入myapp.view1模块 像
angular.module('myApp.view1', ['ngRoute','myApp'])
答案 1 :(得分:2)
工作正常。这解决了我希望如此的问题。
'use strict';
var app=angular.module('myApp.view1', ['ngRoute'])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view1', {
templateUrl: 'view1/view1.html',
controller: 'View1Ctrl'
});
}])
app.factory('mainInfo',
function($http) {
var obj={};
obj.method =function(){
return $http.get('tag.json')
}
return obj;
})
app.controller('View1Ctrl', [
'$scope',
'$http',
'mainInfo',
function($scope, $http, mainInfo) {
mainInfo.method().success(function(response) {
$scope.myWelcome = response;
});
}]);
答案 2 :(得分:1)
在Angular模块中注册mainInfo,如果它是一个不同的模块。
view1.js
angular.module('myApp.view1', ['ngRoute', 'myApp']);
答案 3 :(得分:0)
您尚未将模块分配给变量。
var myApp = angular.module('myApp.view1', ['ngRoute']) ...
然后使用myApp.factory
myApp.factory('mainInfo', [...
请参阅this plunkr以便快速了解。