Skip to content

Instantly share code, notes, and snippets.

@Thanood
Created April 1, 2016 09:54
Show Gist options
  • Save Thanood/17e777c2122c70d06585fa773bd5917e to your computer and use it in GitHub Desktop.
Save Thanood/17e777c2122c70d06585fa773bd5917e to your computer and use it in GitHub Desktop.
Aurelia - select
<template>
<select class="form-control" value.bind="selectedValue">
<option>Select value</option>
<option repeat.for="value of values" model.bind="value">${value.Name} </option>
</select>
</template>
import {inject, bindable} from 'aurelia-framework';
import {BindingEngine} from 'aurelia-binding';
@inject(BindingEngine)
export class App {
constructor(bindingEngine) {
this.values = [{ Id: 2, Name: 'A', Email: 'B' }, { Id: 3, Name: 'B', Email: 'B' }];
this.selectedValue = { Id: 1, Name: 'default', Email: 'default' };
this.valuesubscription = bindingEngine.propertyObserver(this, 'selectedValue')
.subscribe(this.selectedValueChanged);
}
selectedValueChanged(){
console.log('selected value changed');
}
}
<!doctype html>
<html>
<head>
<title>Aurelia</title>
<link rel="stylesheet" href="styles.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body aurelia-app="main">
<h1>Loading...</h1>
<script src="https://cdn.rawgit.com/jdanyow/aurelia-plunker/v0.11.10/jspm_packages/system.js"></script>
<script src="https://cdn.rawgit.com/jdanyow/aurelia-plunker/v0.11.10/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;
/******************************************************************************/
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging();
aurelia.start().then(a => a.setRoot());
}
import { inject } from 'aurelia-framework';
@inject(Element)
export class MyAttributeCustomAttribute {
constructor(element) {
this.element = element;
}
attached() {
window.setTimeout(() => {
this.element.au['my-element'].viewModel.foo = 'changed';
}, 2000);
}
}
<template>
<input type="text" value.bind="foo" />
</template>
import {bindable} from 'aurelia-framework';
export class MyElement {
@bindable() foo = '5';
}
/* Styles go here */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment