骨干视图 - 渲染事件未触发

时间:2015-11-18 12:21:43

标签: javascript backbone.js underscore.js underscore.js-templating

在提出这个问题之前,我已尝试过StackOverflow提供的其他建议。

基本上,这个问题让我抓狂!一个简单的代码,用于呈现未在第一个实例中触发的视图,但是当我尝试通过Chrome DEV工具触发它时,它会触发!..代码如下所示,

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>JS Bin</title>
<script src="//jashkenas.github.io/underscore/underscore-min.js"></script>
<script src="https://code.jquery.com/jquery-1.7.2.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>

	<script type="text/x-backbone" id="welcome-template">
		<h1>Welcome <%=userName%></h1>
	</script>
	<script>
		var User = Backbone.Model.extend({
			defaults: {
			  userName: 'Shanun',
			  userId: '232221',
			  userDept: 'IT'
			}
		});

		var user = new User();
	    
		var MyView = Backbone.View.extend({
			initialize: function(){
	        		this.render();
	      		},
			render: function(){
				var template = $("#welcome-template").html();
				var compiled = _.template(template, {userName: 'David'});
				this.$el.append(compiled);
			}
		});

		var myView = new MyView ({el: '#app', model: user});
		myView.render();
	  </script>
	  
	</head>
	<body>
		<div id="app"></div>
	</body>
</html>

请问一些人可以解决一些问题吗?

谢谢, 戴夫

1 个答案:

答案 0 :(得分:0)

不解雇?我会假设渲染始终被触发,但是第一次处理脚本标记时app div尚未渲染,因此无法追加。