0

这似乎是一个微不足道的问题,我可能对语法感到困惑。

基本上,我希望 FancyBox 在单击链接时加载我拥有的 BB 视图。

以前,它会加载 BB 路由,并重定向到具有所需视图和其他所有内容的页面:

$('.edit_list').show().attr('href', '#lists/' + list.id + '/edit')

我目前的看法

app.views.GlobalListEdit = Backbone.View.extend({
  tagName: "div",
  className: "global_list_edit list_view",
  title: 'Edit - ',
  template: _.template('<div class="error"></div>' +
    '<label for="global_list_edit_name">Group Name</label>' +
    ... truncated ...

我当前的 jquery

  $('.edit_list')
    .on('click', function(){ 
      // $.fancybox({ href: '#' + '#lists/' + list.id + '/edit' });
      // ^ bad idea #1 . This loads the whole other page sans the actual edit form..
      // $.fancybox({ new app.views.GlobalListEdit({el: $('body')}).render() });
      // ^ This psuedo code is more or less what I want. To load a new instant of the BB View.
      return false;
    });

所以我在看..

  1. 回答如何将动态传递list.id给该编辑调用。
  2. 如何渲染该视图。

谢谢!

4

1 回答 1

2

您可以$.fancybox提供一个 jQuery 对象和视图,$el因此您可以这样做:

var v = new View({...});
$.fancybox(v.render().$el);

演示:http: //jsfiddle.net/ambiguous/ncmd7/

或者你可以传递$.fancyboxDOM 元素:

var v = new View({...});
$.fancybox(v.render().el);

演示:http: //jsfiddle.net/ambiguous/t7Sbj/

于 2012-10-10T02:09:27.430 回答