Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Angular2将父服务注入子服务

Angular2将父服务注入子服务
EN

Stack Overflow用户
提问于 2016-04-09 06:52:01
回答 5查看 8K关注 0票数 6

考虑到我有简单的app组件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {Component} from 'angular2/core';
import {bootstrap}    from 'angular2/platform/browser';
import {AppComponent}    from 'ng2-easy-table/app/app.component';
import {ConfigService} from "./config-service";

@Component({
  selector: 'app',
  directives: [AppComponent],
  providers: [ConfigService],
  template: `
    <ng2-table [configuration]="configuration"></ng2-table>
  `
})
export class App {
  constructor(private configuration:ConfigService) {}

}
bootstrap(App, []);

ng2-table,它是通过npm install安装的,并放在node_modules目录中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {Component, OnInit, Input} from 'angular2/core';

@Component({
  selector: 'ng2-table',
})

export class AppComponent implements OnInit{
  @Input configuration;
  constructor() {
    console.log("configuration: ", this.configuration); // <-- null
  }

  ngOnInit() {
    console.log("configuration: ", this.configuration); // <-- null
  }
}

这个配置服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {Injectable} from "angular2/core";
@Injectable()
export class ConfigService {
    public searchEnabled = true;
    public orderEnabled = true;
    public globalSearchEnabled = true;
    public footerEnabled = false;
    public paginationEnabled = false;
    public exportEnabled = true;
    public resourceUrl = "http://beta.json-generator.com/api/json/get/E164yBM0l";
}

app组件中,我放置了ng2-table组件。ng2-tableapp是根组件,所以我不允许使用@Input() (这就是[configuration]="configuration"不能工作的原因(按照这个答案https://stackoverflow.com/a/33155688/1168786)。

问题是--如何将一些服务从app组件注入到ng2-table组件中,但不使用@Input()

如何将一些配置传递给我的ng2-table,甚至更简单,如何从node_modules初始化组件,这需要构造函数中的一些配置?

这是组件链接:https://github.com/ssuperczynski/ng2-easy-table/tree/master/app

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-04-11 09:08:02

@Input in @Input configuration;缺少()应该是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Input() configuration;

我将您的代码复制到柱塞中,并添加()修复了它。

柱塞实例

票数 5
EN

Stack Overflow用户

发布于 2016-04-09 07:29:53

ConfigService的依赖注入将向子组件提供与父组件相同的实例,只要它没有在子组件的providers属性中显式指定。这是由于角的层次DI模型,你可以找到更多的信息,在他们的文档。根据代码示例,看起来ConfigService可能不使用DI,因此您可能也希望将其转换为可注入的:第二信息

票数 7
EN

Stack Overflow用户

发布于 2016-04-09 07:20:46

这一行似乎不正确,因为我猜您想要计算configuration表达式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ng2-table [configuration]="'configuration'"></ng2-table>

我会使用以下方法来代替

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ng2-table [configuration]="configuration"></ng2-table>

此外,我将以这样的方式注入您的服务(如果它实际上是一个服务):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(...)
import {ConfigService} from "./config-service";

export class App {
  constructor(private configuration: ConfigService) {
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36518422

复制
相关文章
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
Python函数的参数多达5种,不像Java那样参数只有一种,而是像C++那样提供默认参数,除此之外,还提供可变参数、关键字参数、命名关键字参数,这样就使得Python函数的参数变得十分复杂。但复杂意味着灵活便捷,Python语言之所以流行起来,与起本身巨大的灵活性是分不开的。可以说Python是最方便使用的语言。 Python参数类型: - 位置参数(positional arguments,官方定义,就是其他语言所说的参数) - 默认参数(类似C++的默认参数) - 可
Steve Wang
2018/02/05
22.2K0
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
关于apt-get命令介绍及其参数使用
高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软 件包,因此简化了 Unix系统上管理软件的过程,apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
菲宇
2022/12/02
1.3K0
拼接GET请求的参数
本人在做接口测试的过程中,之前写了一个用字符串替换的方法来处理get接口的参数拼接,后来优化了这个方法,兼容了中文字符提示非法字符的情况,使用了java自带的urlencode方法。包括第一种方法,之前传的是json。分享代码,供大家参考。
FunTester
2019/09/25
3.9K0
excel导出使用get请求参数过长问题
excel导出功能时,使用的是window.location.href=url也就是get请求。当传入参数过长的时候就报了414,地址过长的错误。
用户1518699
2018/12/14
2.1K0
excel导出使用get请求参数过长问题
Python - 函数形参之必填参数、缺省参数、可变参数、关键字参数的详细使用
声明函数时,当同时存在必填参数和缺省参数,形参的顺序必须是 (必填参数 , 缺省参数),不能缺省参数在前
小菠萝测试笔记
2020/06/09
3.5K0
Python - 函数形参之必填参数、缺省参数、可变参数、关键字参数的详细使用
软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。
霍格沃兹测试开发Muller老师
2023/10/13
5220
【说站】python关键字参数的多种使用
2、在定义函数时,如果参数列表中的某个参数使用**参数名称,则该参数可以接受所有关键词参数。
很酷的站长
2022/11/24
2860
【说站】python关键字参数的多种使用
Python 关键字参数和可变参数
如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值——这就是python关键字参数(Keyword Arguments)——我们使用命名(关键字)而非位置(一直以来我们所使用的方式)来指定函数中的参数。
py3study
2020/01/16
1.2K0
nodejs获取GET参数例子
var http = require('http'), url = require('url'), querystring = require('querystring'); http.createServer(function(req, res){ var pathname = url.parse(req.url).pathname, paramStr = url.parse(req.url).query, param = querystring.parse(paramStr); if('/f
苦咖啡
2018/05/08
1.9K0
OpenCV VideoCapture.get()参数详解
param define cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位 cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引 cv2.VideoCapture.get(2) 视频文件的相对位置(播放):0=电影开始,1=影片的结尾。 cv2.VideoCapture.get(3) 在视频流的帧的宽度 cv2.VideoCapture.get(4) 在视频流的帧的高度 cv2.VideoCapture.get(5) 帧速率 cv2.Vi
NateHuang
2019/03/12
1.3K0
SAP ABAP 使用内存参数设置SET /GET PARAMTER ID
SET /GET PARAMTER ID使用SPA/GPA 参数--SAP内存参数设置
matinal
2020/11/27
2.2K0
SAP ABAP 使用内存参数设置SET /GET PARAMTER ID
函数的关键字参数
def func1(name, age, sex, *args): ''' 打印姓名,年龄,性别 ''' print(name) print(age) print(sex) # func1('python', 28,sex='man','s','23') ## 工作经验:不定长参数都是放到最后 func1(name='python', age=30, sex='nv') help(func1) # def func1(a,b, c=100,*args,**
汪凡
2018/05/29
5460
【说站】python命名关键字参数的使用注意
1、如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了。
很酷的站长
2022/11/23
4440
为啥 Java 中不推荐将 Optional 当做参数使用?
最近开发过程中,身边的同事为了实现逻辑复用,定义一个私有公共方法实现逻辑复用,定义函数签名时将上游的 Optional 作为参数传递。 IDEA 给出警告,但是并没有讲清楚为什么。
明明如月学长
2021/12/27
3K0
为啥 Java 中不推荐将 Optional 当做参数使用?
使用js获取url中的get参数并转成json格式
写在前面的 没啥说的 上代码 思路就是先获取到?后面的参数区,然后 利用字符串转数组方法获取到各个参数 var json = {}; var url = 'https://www.ba
Theone67
2019/11/21
6.3K0
解决PHP使用CURL发送GET请求时传递参数的问题
最近在使用curl发送get请求的时候发现传递参数一直没有生效,也没有返回值,以为是自己哪里写错了,网上找东西时也没有人专门来说get请求传递参数的内容,所以,今天在这里记录一下,希望可以帮到一些人
用户8675788
2021/07/13
2.6K0
PHPCMS不增加关键字搜索次数
打开phpcms/modules/serach/index.php 第95行左右,代码如下
李维亮
2021/07/09
2.9K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/18
7.1K0
[javascript] js获取url中的get参数
调用数组的map函数 , map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
唯一Chat
2021/05/17
10.6K0
点击加载更多

相似问题

TypeError: iter()不使用关键字参数

14

TypeError: append()不使用关键字参数

111

使用获取"TypeError: get()获得一个意外的关键字参数‘字段“

10

TypeError: HTTPException()不使用关键字参数

17

TypeError: openlog()不使用关键字参数

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文