在AngularJs 1.7.2中降级的Angular 5组件上使用NgRef

时间:2018-08-06 17:32:45

标签: angularjs angular angularjs-directive

我正在Angular 1.7.2中进行一个项目,该项目利用了Angular 5/6中构建的某些组件。我们正在使用downgradeComponent工具对组件进行降级,并且一切正常。

我们最近添加了一个需要与之集成的新组件,但是我们还需要访问这些组件的属性。我一直在研究ngRef指令,但这似乎行不通,而且在Angular文档之外找不到其他ngRef示例。当我添加ngRef并将其绑定到当前作用域中的变量时,它永远不会被分配。任何帮助将不胜感激!

Angular 5组件

export class ImportedComponent implements OnInit {

    variable1: boolean = true;
    variable2: boolean = false;

    constructor(private certService: ImportedComponent) { }

    ngOnInit() {
        this.variable1 = true;
        this.variable2 = false

    }
}

HTML-带AngularJS 1.7.2

<imported ng-ref="importedProperty" ></imported>

<custom-button ng-if="importedProperty.variable1"  [disabled]="!importedProperty.variable2"></custom-button>

降级

angular
  .module("blah", [])
  .directive(
    "imported",
  downgradeComponent({ component: ImportedComponent }) as angular.IDirectiveFactory
  );

由于正在显示HTML,并且可以看到console.log()从末尾出现,所以正在导入组件的降级正在工作,但是当我尝试访问importedProperty时,我无法定义(如果我在之前的作用域中将其初始化,则为空对象)

1 个答案:

答案 0 :(得分:2)

我最终与组件所有者合作,后者现在正在将数据作为事件传回。然后,我监听该事件并相应地使用这些属性