Sammy找不到元素? JS

问题描述 投票:0回答:1

我正在尝试将Sammy用于我的SPA,但是我无法处理此错误:

[Sun Mar 29 2020 17:37:19 GMT+0300 (Eastern European Summer Time)] #main 404 Not Found get /  Error: 404 Not Found get / 
    at Sammy.Application.error (sammy-latest.min.js:5)
    at Sammy.Application.notFound (sammy-latest.min.js:5)
    at Sammy.Application.runRoute (sammy-latest.min.js:5)
    at Sammy.Application._checkLocation (sammy-latest.min.js:5)
    at Sammy.Application.run (sammy-latest.min.js:5)
    at app.js:23
    at app.js:24 

似乎该应用未在HTML文件中找到该元素,但它在那里。这是我的JS代码以及在index.html中导入的内容:

(()=>{
    const app = Sammy('#main', function(){
        console.log('Hello');
    })
    app.run('/#');
})()

HTML:

    <script src="./node_modules/jquery/dist/jquery.min.js"></script>
    <script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
    <script src="./node_modules/handlebars/dist/handlebars.min.js"></script>
    <script src="./node_modules/sammy/lib/min/sammy-latest.min.js"></script>
    <script src="./node_modules/sammy/lib/plugins/sammy.handlebars.js"></script>

(我有id为'main'的div,需要使用)

我是否应该进行其他配置?

javascript jquery single-page-application sammy.js
1个回答
0
投票

正如@Dominique在评论中所说,您应该使用app.run('#/')而不是app.run('/#')运行该应用程序。

而且,您没有正确使用SammyJS。如果要使用“基本” routes,则可以使用GET方法:

const app = Sammy('#main', function(){
  // Here you should create routes, and not write code

  // Example : Home page : your.site/page.html
  this.get('#/', function() {
    console.log("Welcome Home");
  });   

  // Exemple : your.site/page.html#/sayhello
  this.get('#/sayhello', function() {
    console.log("Hello");
  });   
})

例如,如果您想在控制台中显示您在URL中写的内容,则可以使用URL来使用参数:

var app = Sammy('#main', function() {

  // msg is a variable, where its value comes from the url
  this.get('#/display/:msg',function(c) {
    console.log(c.params.msg);
  });

}

然后如果您转到your.site/page.html#/display/I_love_donutsI_love_donuts将在控制台中打印。

[当我开始学习SammyJS时,我发现了这个非常有用的速成课程:https://www.youtube.com/watch?v=QBKm444gO0U。如果您对SammyJS不满意,我建议您观看。

希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.