<!DOCTYPE html>
<html ng-app="myPlunk" ng-strict-di="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>MD Template</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body ng-controller="AppController as appVm">
<form name="enterCreditsForm" novalidate>
<div>
<label translate>ENTER TOTAL AMOUNT</label>
<input name="credits" type="number"
ng-model="buyCreditsCtrl.creditsWorth" min=400 required>
<div ng-messages="enterCreditsForm.credits.$error">
<div ng-message="required">
This can't be left blank
</div>
<div ng-message="min">
Min is 400
</div>
</div>
</div>
</form>
<md-content class="no-padding" ng-controller='NawController as vm'>
<md-card class='no-padding'>
<md-content class='md-padding'>
<form name='naw' novalidate>
<div class="row">
<md-input-container>
<label>Credits</label>
<input ng-model='vm.naw.achternaam' type='number' min=400 name='credits' required>
<div ng-messages="naw.credits.$error" md-auto-hide="false" ng-show="naw.credits.$touched">
<div ng-message="required">This is required</div>
<div ng-message="min">Min is 400</div>
</div>
</md-input-container>
</div>
</form>
</md-content>
</md-card>
</md-content>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src="//code.angularjs.org/1.3.10/i18n/angular-locale_nl-nl.js"></script>
<script src="//rawgit.com/angular/bower-material/master/angular-material.js"></script>
<script src="script.js"></script>
<script src="texts.js"></script>
</body>
</html>
(function() {
"use strict";
//Use an IIFE
AppController.$inject = ['texts']
function AppController(texts) {
this.version = angular.version.full + " " + angular.version.codeName;
}
function NawController() {
var vm= this;
vm.naw = {};
}
//Hook up all my function into angular
angular.module('myPlunk', [
'ngMaterial',
'ngMessages',
])
.controller('AppController', AppController)
.controller('NawController', NawController);
}());
/* Styles go here */
.title {
color: #fff;
padding-left: 10px;
padding-bottom: 3px;
font-weight: normal;
margin:0;
}
<div ng-message="required">{{texts.verplichtveld}}</div>
<div ng-message="email">{{texts.emailerr}}</div>
(function () {
angular
.module('myPlunk')
.service('texts',texts);
texts.$inject = ['$rootScope'];
function texts($rootScope) {
var service = this;
service.texts = {};
extraTexts();
// this is an app-wide (readOnly) texts object, exposing it on rootscope
// makes it easy to use them in my templates.
$rootScope.texts = service.texts;
return service;
////
function extraTexts() {
var t = {
afspraakvoor: 'Ik wil een afspraak maken voor een:',
vorige: 'vorige stap',
geenvoorkeur: 'Geen voorkeur',
kiesgeslacht: 'Klik of druk op uw keuze',
kiesbehandel: 'Kies uw behandelingen',
kiestijd: 'Selecteer een tijd',
kiesnaw: 'Uw gegevens',
kiesklaar: 'Klaar!',
opmerking: 'opmerking',
maakasp: 'Maak afspraak',
settings: 'instellingen',
momentdatum: 'Moment, beschikbare datum wordt bepaald',
momenttijd: 'Moment, beschikbare tijd wordt bepaald',
momentboek: 'Moment, afspraak wordt geboekt',
teruglink: 'Klik hier om terug te keren naar de salonwebsite',
afspraakgemaakt: 'Afspraak gemaakt.',
afspraakmislukt: 'Afspraak maken mislukt',
naw_naam: 'Achternaam',
naw_vl: 'Voorletters',
naw_adres: 'Adres',
naw_pc: 'Postcode',
naw_pl: 'Woonplaats',
naw_tel: 'Telefoonnummer',
naw_email: 'E-mail adres',
verplichtveld: 'Dit is een verplicht veld',
emailerr: 'This does not seem to be a valid email address'
};
angular.extend(service.texts, t, service.texts);
}
}
}());