ngAfterContentInit()

in libs/fabric/src/lib/components/button/base-button.component.ts [103:136]


  ngAfterContentInit() {
    if (this.menuItemsDirectives && this.menuItemsDirectives.length > 0) {
      const setItems = (directiveItems: ReadonlyArray<ContextualMenuItemDirective>) => {
        const items = directiveItems.map(directive =>
          this._transformContextualMenuItemOptionsToProps(this._directiveToContextualMenuItem(directive))
        );
        if (!this.menuProps) {
          this.menuProps = { items: items };
        } else {
          this.menuProps.items = items;
        }

        this.markForCheck();
      };

      this._changeableItemsHelper = new ChangeableItemsHelper(this.menuItemsDirectives);
      this._subscriptions.push(
        this._changeableItemsHelper.onItemsChanged.subscribe((newItems: QueryList<ContextualMenuItemDirective>) => {
          setItems(newItems.toArray());
        }),
        this._changeableItemsHelper.onChildItemChanged.subscribe(({ key, changes }: CommandBarItemChangedPayload) => {
          const newItems = this.menuItemsDirectives.map(item =>
            item.key === key ? mergeItemChanges(item, changes) : item
          );
          setItems(newItems);

          this.markForCheck();
        })
      );

      setItems(this.menuItemsDirectives.toArray());
    }
    super.ngAfterContentInit();
  }