【问题标题】:Why don't UiKit components accept angular inputs?为什么 UiKit 组件不接受角度输入?
【发布时间】:2017-04-19 08:49:52
【问题描述】:

我正在尝试将布尔值作为输入传递,如下所示:

import { Component, Input, AfterViewInit, OnInit, AfterContentInit } from '@angular/core';


@Component({
    selector: "dac-accordion",
    templateUrl: "./dac-accordion.html",
})

export class DacAccordion implements OnInit {

    @Input("dac-collapse")
    collapse: boolean = false;

    constructor() {
    }

    ngOnInit() {
        console.log(">>>>>>> ", this.collapse); //This prints false.
        UIkit.accordion($("#accordion"), { collapse: this.collapse});
    }

}

当我打印出“this.collapse”的值时,它会打印出“false”,因为我使用 angular2 中的 @Input 指令传递它。

但这似乎在这段代码 sn-p 中不起作用。

只有当我像下面这样明确地尝试传递它时它才有效:

UIkit.accordion($("#accordion"), { collapse: false });

这是怎么回事?!是 UiKit 本身的问题吗?!

【问题讨论】:

  • 类定义在哪里?
  • @TiepPhan 没用。
  • @TiepPhan 也没有用,这很奇怪。不是吗?
  • 你为什么还要在 Angular 中使用 jQuery?
  • @TiepPhan 我不认为这是问题所在,正如我在帖子中提到的那样,当我将“false”明确传递给该选项时它会起作用,所以我认为 DOM 确实存在。

标签: javascript angular typescript input uikit


【解决方案1】:

问题是因为在 Angular 中,如果我写 input="false",此输入将作为“字符串”而不是“布尔”传递给组件输入,所以当我打印折叠值时,它会打印“假”,而不是布尔值.所以基本上我已经将“collapse”的字符串值转换为布尔值并将其传递给组件选项并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2020-05-13
    • 1970-01-01
    • 2018-10-10
    • 2020-06-25
    相关资源
    最近更新 更多