繁体   English   中英

本地JS脚本,SRC无法正确引用

[英]Local JS Script, SRC Not Referencing Properly

我有一些简单的JS代码,用于存储有关人员的数据,并将此数据读/写到Firebase(服务器后端)。 我认为代码很好,但是我无法从“ index.html”文件访问它们。 这是我的“ index.html”文件:

<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.12.0/vis.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.12.0/vis.min.js"></script>
<script type="text/javascript" src="https://cdn.firebase.com/js/client/2.3.2/firebase.js"></script>

<script type="text/javascript" src="./js/firebase.js , ./js/person.js">
  var bob = new Person("Bob");
  var alice = new Person("Alice");

  bob.addPersonToEat(alice);
  alice.addPersonToEat(bob);

  var firebaseUsers = new Firebase("https://web-of-hunger.firebaseio.com/users");

  addNewPerson(firebaseUsers, bob);
</script>

这是我的JS文件:

var Person = function(name) {
  this.data = {
    name : name,
    node : {
      id : "empty",
      label : name
    },
    edges : [],
    wantsToEat : [],
    wantsToBeEatenBy : []
  };
};

Person.prototype.addPersonToEat = function(person) {
  this.data.wantsToEat.push(person);
  person.data.wantsToBeEatenBy.push(this);

  this.data.edges.push(
    {from:this.data.node.id, to:person.data.node.id, arrows:'to'}
  );
};

Person.prototype.removePersonToEat = function(person) {
  this.data.wantsToEat.pop(person);
  person.data.wantsToBeEatenBy.pop(this);

  this.data.edges.pop(
    {from:this.data.node.id, to:person.data.node.id, arrows:'to'}
  );
};

而另一个:

var addNewPerson = function(usersRef, person) {
  if(!checkIfUserExists(person.data.node.id, usersRef)) {
    var newUser = usersRef.push();
    person.data.node.id = newUser.key();
    newUser.set(person.data);
  }
};

var updatePersonData = function(usersRef, person) {
  if(checkIfUserExists(person.data.node.id, usersRef)) {
    usersRef.child(person.data.node.id).update(person.data);
  }
};

var getPersonData = function(usersRef, person) {
  if(checkIfUserExists(person.data.node.id), usersRef) {
    usersRef.once("value", function(snapshot) {
      console.log(snapshot.val());
      return snapshot.val();
    }, function(errorObject) {
      console.log("read failed");
      return null;
    });
  }
};

var checkIfUserExists = function(userId, usersRef) {
  usersRef.child(userId).once("value", function(snapshot){
    if(snapshot.val() != null) {
      return true;
    }
    return false;
  });
};

我认为问题是我的脚本SRC参考被弄乱了。 我做了很多研究和工作,并且尝试了每种解决方案。 但是,我的事情只是不想工作。 我以前从未发生过这种情况。

资料夹结构:

  • src
    • index.html
    • js
      • person.js
      • firebase.js

任何帮助表示赞赏。

您不能同时具有src属性和脚本文本的<script>标记。 您必须为每个脚本使用单独的脚本标签。 据我所知,您也不能在src属性中放置多个URL。 所以这:

<script type="text/javascript" src="./js/firebase.js , ./js/person.js">
  var bob = new Person("Bob");
  ...
</script>

需要细分为:

<script type="text/javascript" src="./js/firebase.js"></script>
<script type="text/javascript" src="./js/person.js"></script>
<script>
  var bob = new Person("Bob");
  ...
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM