Hi,
I added an HTML element in typescript thanks to the following code but my button keep basic design of a button. So I would like to find a way to give ion-button
attribute to get a better design.
ngAfterViewInit () {
this.but = document.createElement("button");
this.but.innerHTML = "Dynamic button";
this.but.setAttribute("ion-button", ""); //TO ADD IONIC DESIGN ATTRIBUTE
var div_element = document.getElementById("button_container");
div_element.appendChild(this.but);
}
![image](https://global.discourse-cdn.com/ionicframework/original/3X/f/5/f5c982066d24549f6b75f4af16e49343076f25d9.PNG)
I’ve tried setAttribute
function but it seems does not work…
Any idea ?
Hey dude,
i’m new to Ionic 2 but yesterday i tried to create a directive and found a renderer class.
Take a look at this: https://angular.io/docs/js/latest/api/core/index/Renderer-class.html
you can import it from the angular/core and inject it:
import { Renderer } from 'angular2/'core;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public renderer: Renderer) {
}
}
But i’ve not done such thing yet. Hope that helps.
In fact the renderer has a setProperty and setAttribute method. But it’s marked as experimental.
So good luck ![:slight_smile: :slight_smile:](https://emoji.discourse-cdn.com/twitter/slight_smile.png?v=5)
Thanks for your response, it does not resolve my problem but I’ve learned something wich will be very interesting in the future of Angular I guess.
So I’ve exactly the same problem now with this code :
ngAfterViewInit(){
var parent_element: any = document.getElementById("but_container");
var button:any = this.rd.createElement(parent_element, "button");
this.rd.setElementAttribute(button, "ion-button", "");
this.rd.setText(button, "TEST");
}