首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何包含多个组件,然后从一个组件到另一个组件调用一个函数?

如何包含多个组件,然后从一个组件到另一个组件调用一个函数?
EN

Stack Overflow用户
提问于 2015-11-04 01:34:26
回答 1查看 1.2K关注 0票数 0

所以,我对AngularJS 2还是很陌生的,有一些问题我一直无法找到明确的在线答案。

我的第一个问题是,如何在angular2应用程序中包含多个组件?这就是我目前的做法,但我认为我做错了。此外,你能看看我是如何包括一项服务吗?

bootstrap.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// DEPENDENCIES GO HERE

bootstrap(App,[
    ROUTER_PROVIDERS,
    HTTP_PROVIDERS,
    provide(LocationStrategy, {useClass: HashLocationStrategy})
]);

app.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// DEPENDENCIES GO HERE

import {Socket} from './services/socket.ts'; // Socket.io Service
import {Second} from './pages/secondComponent.ts';

@Component({
  selector: 'main-component'
})
@View({
  templateUrl: '/views/template.html',
  directives: [Second]
})
@RouteConfig([
  new Route({path: '/', component: Home, as: 'Home'}),
  new Route({path: '/home', component: Home, as: 'Home'})
])
export class App {
  router: Router;
  location: Location;
  socket: Socket;

  constructor(router: Router, location: Location) {
    this.router = router;
    this.location = location;
    this.socket = new Socket(); // <-- Is this how to use a "service"? I'm sure this is wrong as I would need to create a new socket instance every time I wanted to use it? Singleton?
  }
}

secondComponent.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// DEPENDENCIES GO HERE

@Component({
  selector: 'second-component'
})
@View({
  templateUrl: '/views/second.html'
})
export class Second {
  constructor() {

  }
  public callme() {
      return "I work!";
  }

}

如果我将第二个组件作为指令包含在app.ts文件中的@视图中,那么它将加载,但我认为这是错误的,因为它是一个组件,而不是一个指令。

最后,如何从secondComponent.ts文件调用app.ts文件中的"callme()“函数?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var second = new Second(); 
second.callme() 

工作,但不确定这是否正确,因为我认为它再次实例化了组件?

谢谢你的帮助。

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 04:06:47

我的第一个问题是,如何在angular2应用程序中包含多个组件?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Note that @View is optional
// see https://github.com/angular/angular/pull/4566
@Component({
    directives : [Cmp1, Cmp2, Cmp3, Cmp4, CmpN] 
})

// Or
@Component({})
@View({
    directives : [Cmp1, Cmp2, Cmp3, Cmp4, CmpN] 
})

关于如何注入Services。它比这简单得多(angular2为您创建实例,不需要new ;)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
  selector: 'main-component',
  providers : [Socket] // <-- Inject it into the component
})
export class App {
  socket: Socket;

  constructor(socketSvc: Socket) { // <-- Get the instance created above
    this.socket = socketSvc;
  }
}

您可以在viewProviders下看到一个例子。

如果我将第二个组件作为指令包含在app.ts文件中的@视图中,那么它将加载,但我认为这是错误的,因为它是一个组件,而不是一个指令。

通过directives属性包含组件绝对没有什么问题,事实上,这就是您如何做到的,也是组件从指令扩展

最后,如何从secondComponent.ts文件调用app.ts文件中的"callme()“函数?

您只需查询应用程序的子级

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export class App implements AfterViewInit {
  // Assuming you have only one 'Second' child, if you have multiple you must use @ViewChildren
  @ViewChild(Second) second: QueryList<Second>;

  afterViewInit() {
    this.second.callMe();
  }
}

我建议您通过教程,您错过了上面提到的一些基本步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33518237

复制
相关文章
VueCli脚手架(二)组件如何使用,如何在一个组件里面使用另一个组件
之前已经创建了项目,项目一启动,就会走main.js 这个文件 因为main.js 这个里面已经引入了App.vue组件,那么就会展示这个App.vue里面的东西
一写代码就开心
2021/01/05
1K0
VueCli脚手架(二)组件如何使用,如何在一个组件里面使用另一个组件
vue子组件调用父组件函数_vue子组件修改父组件值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.7K0
vue 父组件调用子组件的函数_vue子组件触发父组件方法
项目里将element-ui的el-upload写成公共组件方便调用,官方的before-upload方法用于处理上传前要做的事,如:比较文件大小,限制文件类型等,通过返回true 或 false 控制是否上传。 当该组件调用父组件方法,并且要能获取到父组件方法的返回值,如何实现?
全栈程序员站长
2022/11/10
3K0
如何制作一个组件?论组件化思想
现今的web开发通过前后端分离的技术拆分为了web后端开发与web前端开发,值得指出的是,web前端开发早已不是传统意义上的开发模式了,转而变成了web客户端开发,有过客户端开发经验的同学应该知道这两者间的差别,客户端开发关注的是:
coder_koala
2020/11/10
7720
如何制作一个组件?论组件化思想
在Vue组件中使用多个Vue组件搭建一个页面
是在main.js中,通过import和Vue.conponent进行组件注册的。
Swingz
2020/12/18
2.7K0
在Vue组件中使用多个Vue组件搭建一个页面
父组件向子组件传递一个组件
leader755
2023/07/31
1400
React :(类、函数)子组件调用父组件的方法
子组件中使用传过来的cancelCreateFile【this.props.cancelCreateFile】,就可以在子组件中调用
江一铭
2022/09/23
5.3K0
React :(类、函数)子组件调用父组件的方法
聊聊类组件到函数组件的变迁
最近一直在学习 React,在看到 React Hooks 一章时联想到 Compose ,简直有着异曲同工之处,他们都是由 UI 组件、State 状态、Effect 副作用构成,而且,Android 端很多优秀的架构思路都来源于前端,适当性的学习些前端知识,反而更能容易理解当下 Android 原生的架构,这也是我一直推荐大家有时间也学习一下前端的原因,本期主要聊聊 Android 原生与 React 的对比,总结了类组件与函数组件的不同。
codelang
2022/11/30
3.5K1
聊聊类组件到函数组件的变迁
Vue组件库 | 如何从0到1开发一个开源组件库
本文可能无法从细节层面教会你如何做好一个开源组件库,作者也在不断探索和学习,但是也许会对你有所启发。这篇文章既是分享,也是记录,在写这篇文章的此刻,已经是作者一拍脑袋要做一个开源项目将近一年之后了。一年以前作者对于如何开发一个组件库一无所知,对于开源项目也是了解甚少,抱着什么不会学什么的态度,作者拉上了两位好友开始了Varlet的开发。
玖柒的小窝
2021/09/24
7320
Vue组件库 | 如何从0到1开发一个开源组件库
Discourse 如何安装一个主题组件或者主题组件
如何在 discourse 中安装一个主题(Theme)或者主题组件(Theme Component)
HoneyMoose
2020/05/21
7660
Discourse 如何安装一个主题组件或者主题组件
React - 组件:函数组件
1. 组件名字首字母一定是大写的 2. 返回一个jsx 3. jsx依赖React,所以组件内部需要引入React 4. 组件传参 a. 传递. <Component list={ arrData }><Component> b. 接收. function Component( props ){...} c. 使用. const { list } = props,list就是参数数据 5. 缺点:【无状态组件】只能实现很简单的视图展示功能,没有自己的内容数据、没有状态,没有逻辑处理,【没有this】,【没有生命周期】。 6. 16.7以后版本的react有状态和钩子函数提供使用。不过版本过新不推荐用 内部不用render函数,会自动把return返回结果当做render返回结果【见类组件的必须要求】
xing.org1^
2019/11/26
1.8K0
React - 组件:函数组件
React组件设计模式-纯组件,函数组件,高阶组件
如果你想写的组件只包含一个 render 方法,并且不包含 state,那么使用函数组件就会更简单。我们不需要定义一个继承于 React.Component 的类,我们可以定义一个函数,这个函数接收 props 作为参数,然后返回需要渲染的元素。
xiaofeng123aa
2022/10/18
2.2K0
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.1K0
从一个无缝滑动组件分析得出的知识
项目中使用了vue-seamless-scroll 这个组件,用于无缝自动滑动推荐商品.
拿我格子衫来
2022/01/24
5660
从一个无缝滑动组件分析得出的知识
vue父组件调用子组件方法
抱怨身处黑暗,不如提灯前行。——刘同 首先是官方文档 这里使用ref属性去访问子元素 <hello-world ref="helloWorld" msg="Hello World"></hello-world> 然后打印一下 console.log(this.$refs.helloWorld); 可以看到成功获取到 再到子组件定义一个方法: 父组件访问: 效果:
阿超
2022/08/17
1.8K0
vue父组件调用子组件方法
vue子组件调用父组件方法
强迫学习的东西是不会保存在心里的。——《柏拉图论教育》 首先我们在子组件中这样定义 <template> <div> <el-button @click="callSuper">123</el-button> </div> </template> <script> export default { methods: { callSuper() { this.$emit('parentEvent', '我的'); } } }; </script> 这里的组件就只有一个el-
阿超
2022/08/16
2.1K0
vue子组件调用父组件方法
VUE开发一个组件——Vue 分页组件
想要快速开始的,请向下看。如果想理解源码的,可以直接跳过“快速开始”, 到“源码解读”
Javanx
2019/09/04
6430
VUE开发一个组件——Vue 分页组件
vue父组件调用子组件方法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
2.5K0
React组件设计模式之-纯组件,函数组件,高阶组件
如果你想写的组件只包含一个 render 方法,并且不包含 state,那么使用函数组件就会更简单。我们不需要定义一个继承于 React.Component 的类,我们可以定义一个函数,这个函数接收 props 作为参数,然后返回需要渲染的元素。
xiaofeng123aa
2022/12/07
2.4K0
vue 父组件调用子组件_react父组件向子组件传值
1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。
全栈程序员站长
2022/11/15
1.9K0

相似问题

调用函数从一个组件到另一个组件Angularjs 2

24

调用函数从一个组件到另一个组件来更新按钮

21

如何在reactjs中调用从一个组件到另一个组件的函数?

22

从一个组件调用一个方法到另一个组件

413

如何从一个组件导航到另一个组件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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