Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何以编程方式将离子按钮添加到离子导航栏?(离子2,角2)_Angular_Typescript_Ionic Framework_Ionic2 - Fatal编程技术网

Angular 如何以编程方式将离子按钮添加到离子导航栏?(离子2,角2)

Angular 如何以编程方式将离子按钮添加到离子导航栏?(离子2,角2),angular,typescript,ionic-framework,ionic2,Angular,Typescript,Ionic Framework,Ionic2,我需要能够以编程方式向导航栏添加按钮。应使用某种模板(在Angular 2中)或代码(typescript)将此HTML代码添加到页面(在中) 我发现ng include在Angular 2中不起作用,虽然有一些变通方法,但它们太混乱,无法在我需要它的情况下使用 我知道可以在Typescript中以编程方式创建警报,但是,添加按钮怎么样?如果不是通过标准类,是否可以使用@ViewChild()?我尝试了不同的方法(管道、模板包括via变量等),但不幸的是,最终无法以稳定的方式完成任何工作。您

我需要能够以编程方式向导航栏添加按钮。应使用某种模板(在Angular 2中)或代码(typescript)将此HTML代码添加到页面(在
中)


我发现
ng include
在Angular 2中不起作用,虽然有一些变通方法,但它们太混乱,无法在我需要它的情况下使用


我知道可以在Typescript中以编程方式创建警报,但是,添加按钮怎么样?如果不是通过标准类,是否可以使用
@ViewChild()
?我尝试了不同的方法(管道、模板包括via变量等),但不幸的是,最终无法以稳定的方式完成任何工作。

您可以使用ngFor。在类中填充按钮列表(对象具有图标、颜色等按钮属性),并在模板中使用ngFor


您可以从您的typescript代码动态地将html添加到模板中。但不能动态添加角度代码。因为角度编译一次,它不能编译动态代码。因此,请改用html和纯javascript。以下是示例:
在html中:

在typescript中:

    let parent = <HTMLDivElement>document.getElementById('parent');
    let button = document.createElement("button");
    let text = document.createTextNode("Click me");
    button.appendChild(text);
    button.setAttribute('id','button1');
    parent.appendChild(button);
    let button1 = <HTMLButtonElement>document.getElementById('button1');
    button1.addEventListener('click', (event) => {
      //your code here
      console.log("Button clicked");
    })
let parent=document.getElementById('parent');
let button=document.createElement(“按钮”);
让text=document.createTextNode(“单击我”);
按钮。追加子项(文本);
setAttribute('id','button1');
父.子(按钮);
let button1=document.getElementById('button1');
按钮1.addEventListener('单击',(事件)=>{
//你的代码在这里
控制台日志(“点击按钮”);
})

这是朝着好的方向迈出的一步,但我应该提到,页面模板不需要太多修改是一项要求。例如,最好有一个变量或模板include(因为它是用来构建一个易于使用的特定框架——我不希望使用这个框架的开发人员需要将所有代码自己添加到模板中),我需要找到一种方法从页面的类中添加代码,这样我就可以将其放入超类中,对开发人员隐藏。模板应该只包含非常少量的代码(如显示变量或其他)。我在问题中输入的代码应该添加到模板的标记中——但不是通过编写,而是通过使用变量或类似的方式。关于这个问题,没有更多的代码,所以我不确定应该向plunker发布什么。
    let parent = <HTMLDivElement>document.getElementById('parent');
    let button = document.createElement("button");
    let text = document.createTextNode("Click me");
    button.appendChild(text);
    button.setAttribute('id','button1');
    parent.appendChild(button);
    let button1 = <HTMLButtonElement>document.getElementById('button1');
    button1.addEventListener('click', (event) => {
      //your code here
      console.log("Button clicked");
    })