我从youtube开始关注本教程,并尝试将解析方法getposts
添加到contactController中。我不知道为什么它没有返回任何价值。
有人能告诉我,我在这里做错了吗?我在stackoverflow中花了一个小时的时间,但没有希望:(
var app = angular.module('simpleApp', ['ngRoute', 'ngSanitize']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/', {
templateUrl: './partials/home.html'
})
.when('/contact', {
controller: "contactController",
controllerAs: "contactCtrl",
templateUrl: './partials/contact.html',
resolve:{
getposts: function($http) {
return $http.get('https://jsonplaceholder.typicode.com/comments/1')
.then(function(response) {
// console.log(response.data) returns api data
return response.data;
})
}
}
}).controller('contactController', ['$scope', '$http', function($scope, $http, getposts){
vm = this;
console.log(getposts); // not getting response.data from getposts
vm.posts = getposts;
}])
// contact.html
<div>
<div class="row">
dfgdfg
<div class="col-lg-6">
{{ posts }}
</div>
</div>
</div>
问题1:如果我删除两行
controller: "contactController",
controllerAs:"contactCtrl"
并在ng-controller="contactController"
的主div中添加contact.html
我收到错误
Error: [$injector:unpr] Unknown provider: getpostsProvider <- getposts <- contactController
问题2:如果添加了那些控制器和控制器线,并且从视图中删除了ng-controller="contactController"
,那么我需要添加
$ scope将视图输出到视图。如果我vm.posts = getposts;
它在视图中没有显示json响应。哦该死的我很困惑。
答案 0 :(得分:3)
基本上你错过了在控制器DI数组的内联数组注释中注入getPosts
。
controller('contactController', [
'$scope', '$http', 'getposts', //<-- you missed to inject here
function($scope, $http, getposts){