2016-01-10 28 views
-1

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

<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

任何帮助表示赞赏。

回答

4

您不能有<script>标记同时具有src属性和脚本文本。您必须为每个脚本使用不同的脚本标记。据我所知,你也不能在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> 
+0

@ jonathanhuo11 - 这个回答你的问题? – jfriend00

相关问题