javascript - 为什么解析方法没有向控制器返回任何数据?
问题描述
我正在关注youtube上的本教程,并试图将 resolve 方法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"
主 divcontact.html
我得到一个错误
Error: [$injector:unpr] Unknown provider: getpostsProvider <- getposts <- contactController
问题 2:如果在视图中添加和删除了这些控制器和 controllerAs 行,ng-controller="contactController"
那么我需要添加 $scope 以将帖子输出到视图。如果我这样做,vm.posts = getposts;
它不会在视图中显示 json 响应。哦,该死的我很困惑。
解决方案
基本上你错过了注入getPosts
控制器 DI 数组的内联数组注释。
controller('contactController', [
'$scope', '$http', 'getposts', //<-- you missed to inject here
function($scope, $http, getposts){
推荐阅读
- keycloak - Keycloak 客户端部署最佳实践
- ubuntu - Dante 代理无法在 ubuntu 18.04 上运行,导致协商超时
- python - 我需要一个关于如何理解 python 的指南
- unit-testing - Jasmine 中的测试开关盒
- javascript - Vue js:v-for 中的 v-bind 属性
- javascript - 在 parcel.js 中删除/重置 console.log
- c - 为了提高性能的目标,IEEE 754 可以在多大程度上被违反?
- java - 使用套接字将 JFrame 绘图从客户端发送到服务器
- javascript - JavaScript 相当于 Python 中的列表操作
- c# - WebAPI 2 导出在 IIS 7/8 上部署时损坏的 Excel、PDF,但在我的本地计算机上的 IIS 10 中正常工作