Javascript 已将主干视图绑定到html渲染器

Javascript 已将主干视图绑定到html渲染器,javascript,backbone.js,Javascript,Backbone.js,是否有一种奇特的方式将视图绑定到页面中已经存在的html渲染器 例如,您的服务器加载所有页面html,然后在第一次加载页面时不使用render方法在该html上加载视图。我不太确定您当前正在处理什么,但我制作了一个JSFIDLE,它只使用主干视图,不需要担心模型、集合或路由器 您可以对此进行操作,并查看主页视图是如何加载到其容器中的 这里是小提琴:我做了一些类似于我认为你要做的事情。在我的例子中,我在现有表单的基础上添加了主干功能。下面是一个简单的例子: 现有HTML: <div id="

是否有一种奇特的方式将视图绑定到页面中已经存在的html渲染器


例如,您的服务器加载所有页面html,然后在第一次加载页面时不使用render方法在该html上加载视图。

我不太确定您当前正在处理什么,但我制作了一个JSFIDLE,它只使用主干视图,不需要担心模型、集合或路由器

您可以对此进行操作,并查看主页视图是如何加载到其容器中的


这里是小提琴:

我做了一些类似于我认为你要做的事情。在我的例子中,我在现有表单的基础上添加了主干功能。下面是一个简单的例子:

现有HTML:

<div id="my-app">
  <form name="input" action="html_form_action.asp" method="get">
    Username: <input type="text" name="user" id="username" />
    <input type="submit" value="Submit" />
  </form> 
</div>

用户名:
主干:

var MyFormView = Backbone.View.extend({
  events: {
    "submit form": "formHandler"
  },
  formHandler: function(evt) {
    evt.preventDefault();
    var nameVal = $('#username').val();
    this.$el.append('<p>hello: ' + nameVal + '</p>');
  }
});

$().ready(function(){
  var myForm = new MyFormView({el: "#my-app"});
});
var MyFormView=Backbone.View.extend({
活动:{
“提交表单”:“formHandler”
},
formHandler:函数(evt){
evt.preventDefault();
var nameVal=$('#username').val();
这个.$el.append('hello:'+nameVal+'

'); } }); $().ready(函数()){ var myForm=newmyformview({el:#我的应用程序“}); });

关键是在创建视图时将现有html作为“el”属性传递。

我不确定您所说的奇特方法是什么意思,但您的视图不需要为其
el
本身呈现
html
。只需将视图指定给页面上的现有元素,就可以轻松地将视图附加到该元素。如果您想在以后分配视图的el(假设您想“切换”视图的
el
),则可以使用该方法。使用
setElement
还将创建缓存的
$el
,并移动任何绑定事件。

不确定您在问什么。由于JavaScript是客户端的,任何JS框架都可以修改DOM元素,而无需依赖服务器(除非您使用服务加载AJAX相关数据)。这就是单页应用程序背后的全部想法——服务器发送一个包含所有模板的html视图,JavaScript呈现视图并处理html。你能更具体地描述一下你在做什么吗?