2014-06-10 41 views
0

我有如下因素码不显示名称:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Title</title> 


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script> 

var myView = Backbone.View.extend({ 
    tagName : 'li', 
    className : 'myClass' 
}); 

var aView = new myView(); 
console.log(aView.el); 

var Person = Backbone.Model.extend({ 
    defaults: { 
     name: 'User1', 
     age: 27, 
     occupation: 'SE' 
    } 
}); 

var anotherView = Backbone.View.extend({ 
    tagName : 'li', 
    initialize : function(){ 
     console.log("called View"); 
     this.render(); 
    }, 
    render : function(){ 
     console.log("model : " + this.model.get('name')); 
     this.$el.html(this.model.get('name')); 

    } 
}); 

var person = new Person(); 
var fstView = new anotherView({model:person}); 
console.log(fstView.el); 


here,this。$ el.html(this.model.get('name'));没有在浏览器上显示任何内容。

回答

1

anotherView中,您已指定tagNameli。这会创建一个li元素,但不会将其添加到DOM,因此浏览器中不会显示任何内容。因此,如果您从tagName,classNameid创建视图的el,那么您需要确保将其添加到DOM。

添加的最后一行下面给你的代码。

var person = new Person(); 
var fstView = new anotherView({model:person}); 
console.log(fstView.el); 
$('body').html(fstView.el); 

看一看view.elwhat is el

注意:确保您有一个ul,然后将相应的li's添加到它。

相关问题