gpt4 book ai didi

javascript - 在 Angular 1.6 应用程序中注入(inject)服务

转载 作者:行者123 更新时间:2023-11-28 17:52:22 24 4
gpt4 key购买 nike

我对学习 Angular 很感兴趣,它变得如此流行,似乎有必要学习一些东西。

我遇到了一个问题,我在 Angular 1.0.x 中做了一个小应用程序,但为了扩展我对 Angular 的了解,我决定向我的代码添加功能和复杂性。

阅读一些博客后,我修改了我的应用程序并将其更新到 Angular 1.6。所以我尝试使用一个为我提供数据的服务,到目前为止,数据都是固定的 JSON,它为我提供了几个要在屏幕上显示和显示的对象。但我遇到了一些困难,我正在尝试的代码是下一个:

var app = angular.module('myApp', ['ngRoute']);
app.config(appConfig);
app.service('MyService', MyService);
app.controller('TestController', ['$http', TestController])

function appConfig($routeProvider, MyService) {
$routeProvider.when('/', {
templateUrl: './test.html',
controller: 'TestController',
controllerAs: 'my',
resolve: {
data: MyService.getData()
}

});
}

function TestController($http, MyService) {
// some code
}


function MyService() {
return {
getData: getData
}

function getData() {
var datos = [ << valid json >> ];
return datos;
}
}

但看来我注入(inject)了错误的服务,它说我的服务是我的并且不知道提供商。

如果我退出对其工作的服务的引用,我必须以其他方式分配数据,但它可以在没有服务的情况下工作。我想我已经按照我读过的教程完成了所有操作,但是很明显有问题,而且只要我无法识别它,显然我需要有人来解释我的 Angular 注入(inject)的基础知识。

所以我有疑问:如何注入(inject)服务?我究竟做错了什么?为什么我的代码不起作用?

最佳答案

MyService注入(inject) Controller 而不是TestController

app.controller('TestController', ['$http', 'MyService'])

此外,您实现的是工厂,而不是服务。所以改变它

app.factory('MyService', MyService);

关于javascript - 在 Angular 1.6 应用程序中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45213978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com