Skip to content

Instantly share code, notes, and snippets.

@Thanood
Forked from avrahamcool/app.html
Created March 17, 2017 16:22
Show Gist options
  • Save Thanood/d05b09a7a58bd0642d4e86e4b7cafc4b to your computer and use it in GitHub Desktop.
Save Thanood/d05b09a7a58bd0642d4e86e4b7cafc4b to your computer and use it in GitHub Desktop.
Aurelia-Materialize bridge modal.open() from attached event
<template>
<require from="./working"></require>
<require from="./not-working"></require>
<p>
<button md-button click.delegate="showNotWorking = true">Show (Not Working)</button>
<button md-button click.delegate="showNotWorking = false">Hide</button>
</p>
<p>
<button md-button click.delegate="showWorking = true">Show (Working)</button>
<button md-button click.delegate="showWorking = false">Hide</button>
</p>
<not-working if.bind="showNotWorking"></not-working>
<working if.bind="showWorking"></working>
</template>
export class App {
}
<!doctype html>
<html>
<head>
<title>Aurelia</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body aurelia-app="main">
<h1>Loading...</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.6/system.js"></script>
<script src="https://rawgit.com/aurelia-ui-toolkits/aurelia-materialize-bundles/0.20.2/config2.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>
/*******************************************************************************
* The following two lines enable async/await without using babel's
* "runtime" transformer. Uncomment the lines if you intend to use async/await.
*
* More info here: https://github.com/jdanyow/aurelia-plunker/issues/2
*/
//import regeneratorRuntime from 'babel-runtime/regenerator';
//window.regeneratorRuntime = regeneratorRuntime;
/******************************************************************************/
import 'materialize';
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-materialize-bridge', bridge => bridge.useAll() );
aurelia.start().then(a => a.setRoot());
}
<template>
I'm inside the Not working component - the modal did'nt work - but if you hide me and show again it will work
<div md-modal md-modal.ref="modal">
<div class="modal-content">
<h4>HEADER - NOT WORKING</h4>
<p>It works only after the first time</p>
</div>
</div>
</div>
</template>
export class NotWorking {
attached()
{
this.modal.open();
}
}
<template>
I'm inside the working component
<div md-modal md-modal.ref="modal">
<div class="modal-content">
<h4>HEADER - WORKING</h4>
<p>Working also the first time</p>
</div>
</div>
</div>
</template>
import {inject, TaskQueue} from 'aurelia-framework';
@inject(TaskQueue)
export class Working {
constructor(tq) {
this.tq = tq;
}
attached()
{
this.tq.queueTask(() => this.modal.open());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment