Полимерные железные страницы не работают
Я реализую простое приложение маршрутизации в Polymer.js с использованием Iron-Pages и Page.JS, но это не работает.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="/bower_components/webcomponentsjs/webcomponents-loader.js"></script>
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/iron-pages/iron-pages.html">
<link rel="import" href="routes.html">
<title>Document</title>
</head>
<body>
<div is="dom-bind" id="app">
<a data-route="home" href="/">home</a>
<a data-route="users" href="/users">users</a>
<a data-route="settings" href="/settings">settings</a>
<iron-pages attr-for-selected="data-route" selected="{{route}}">
<section data-route="home">Home</section>
<section data-route="users">Users</section>
<section data-route="settings">Settings</section>
</iron-pages>
</div>
</body>
</html>
<script src="/bower_components/page/page.js"></script>
<script>
window.addEventListener('WebComponentsReady', function() {
page('/', function() {
app.route = 'home'
console.log(app.route)
// console.log('home')
})
page('/users', function () {
app.route = 'users'
})
page('/settings', function () {
app.route = 'settings'
})
page({
hashbang: false
})
})
</script>
Кажется, все в порядке, но это не работает.
1 ответ
Во-первых, вы не должны использовать железные страницы в index.html. Это намного проще, и в будущем вашему приложению также необходимо создать новый элемент, в котором будет размещена вся логика структуры (маршрутизация, некоторые всплывающие элементы и т. Д.),
Dom-bind
это только временное решение. Ваш код, кажется, в порядке, и не должно быть никаких проблем.
Я полагаю, у вас есть .htaccess
настроено так, как необходимо при использовании page.js