聚合物铁页pagejs无法正常工作

时间:2017-10-25 11:42:47

标签: polymer page.js iron-pages

我正在使用iron-pages和page.js在polymer.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 个答案:

答案 0 :(得分:1)

首先,你不应该在index.html中使用iron-pages。它会更容易,并且在你的应用程序的未来还需要创建新的元素,其中所有的结构逻辑(路由,一些)弹出元素等...)。

Dom-bind只是临时解决方案。您的代码似乎没问题,应该没有问题。

我认为您已配置.htaccess,因为在使用page.js时必须使用<View style={styles.container}> <FlatList data={this.state.restaurants} renderItem={({ item }) => this.renderItem(item.restaurant)} keyExtractor={restaurant => restaurant.key} ListHeaderComponent={() => this.renderHeaderComponent()} ItemSeparatorComponent={this.renderSeparator}/> </View>