首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Aurelia-对话框中从DI容器中注入对象?

如何在Aurelia-对话框中从DI容器中注入对象?
EN

Stack Overflow用户
提问于 2017-05-02 12:54:20
回答 1查看 506关注 0票数 2

使用Aurelia,您可以将东西放入容器中,然后注入它。对话框中不共享容器状态。

是否有一种方法可以获取我在容器中注入的数据,并在对话框中使用它?

代码示例

home.js

代码语言:javascript
复制
fetchString(){
  this.data = JSON.parse(stringform);
  this.container.registerInstance('tpscform', this.data);
}

custom-element.js

代码语言:javascript
复制
import {DialogService} from 'aurelia-dialog';
import {LookupFieldsDialog} from './dialog/lookup-fields-dialog';

@inject('tpscform', DialogService)
export class LookupFieldsQuestion {

  constructor(form, dialog){
    console.log(form); // returns the object from the container - works
    //...
  }

  submit() {
    this.dialogService.open({
      viewModel: LookupFieldsDialog,
      model: this.question,
      lock: false
    });
  }

}

lookup-fields-dialog.js

代码语言:javascript
复制
import {inject} from 'aurelia-framework';
import {DialogController} from 'aurelia-dialog';

@inject(DialogController, 'tpscform')
export class LookupFieldsDialog {

  constructor(controller, form) {
    this.controller = controller;
    console.log(form); // Returns the string 'tpscform' - doesn't work
  }

  activate(question) {
    this.question = question;
  }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 13:37:07

正如@FabioLuz所提到的,您可以将容器传递到对话框中:

代码语言:javascript
复制
import {Container} from 'aurelia-framework';
import {DialogService} from 'aurelia-dialog';
import {LookupFieldsDialog} from './dialog/lookup-fields-dialog';

@inject(DialogService, Container)
export class LookupFieldsQuestion {

  constructor(dialogService, container) {
    this.container = container;
    this.dialogService = dialogService;
  }

  submit() {
    this.dialogService.open({
      viewModel: LookupFieldsDialog,
      model: this.question,

      // Share current container here
      childContainer: this.container.createChild(),

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

https://stackoverflow.com/questions/43738446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档