SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: [mithril.js]; [javascript];
--- app1.js --- app2.js --- app3.js
<!DOCTYPE html> <html lang="ru"> <body> <script src="https://unpkg.com/mithril/mithril.js"></script> <script> var root = document.body m.mount(root, { view: function() { return m("h1", "Try me out") } }) </script> </body> </html>app2.js Скачать
<!DOCTYPE html> <html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="author" content="Ремизов Александр" /> <meta name="generator" content="RemiZOffAlex" /> <meta name="copyright" lang="ru" content="RemiZOffAlex" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" /> <script src="https://cdn.jsdelivr.net/npm/mithril@2.2.2/mithril.min.js"></script> </head> <body> <section id="app" class="container-fluid"></section> <script> let root = document.getElementById("app"); m.mount(root, { view: function() { return m("h1", "Try me out") } }); </script> </body> </html>app3.js Скачать
<!DOCTYPE html> <html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" /> <script src="https://cdn.jsdelivr.net/npm/mithril@2.2.2/mithril.min.js"></script> </head> <body> <section id="app" class="container-fluid"></section> <script> let root = document.getElementById("app"); let Home = { view: function(vnode) { return [ m('h1', 'Hello world!'), m(m.route.Link, {href: '/login'}, 'Войти') ]; } }; function Login() { let data = { username: '', password: '' }; function login() { m.request({ url: '/api', method: "POST", body: { "jsonrpc": "2.0", "method": 'auth.login', "params": { "username": data.username, "password": data.password }, "id": 1 } }).then( function(response) { if ('result' in response) { m.route.set('/'); } } ) }; function form_submit(e) { e.preventDefault(); login(); }; return { view: function(vnode) { return m('form', {onsubmit: form_submit}, [ m('div', {class: "input-group mb-3"}, [ {tag: '<', children: '<span class="input-group-text"><i class="fa fa-user"></i></span>'}, m('input', {class: 'form-control', placeholder: 'Логин', type: 'text', oninput: function (e) {data.username = e.target.value}, value: data.username}), ]), m('div', {class: "input-group mb-3"}, [ {tag: '<', children: '<span class="input-group-text"><i class="fa fa-lock"></i></span>'}, m('input', {class: 'form-control', placeholder: 'Пароль', type: 'password', oninput: function (e) {data.password = e.target.value}, value: data.password}), ]), m('div', {class: "row"}, m('div', {class: "col py-2"}, m('button', {class: 'btn btn-outline-success float-end', type: 'submit'}, 'Войти') ), ), ]); } } } m.route.prefix = ''; m.route( root, "/", { "/": Home, "/login": Login, } ); </script> </body> </html>