Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在backbone.js视图中使用jquery自定义小部件_Jquery_Backbone.js_Backbone Views_Jquery Widgets - Fatal编程技术网

在backbone.js视图中使用jquery自定义小部件

在backbone.js视图中使用jquery自定义小部件,jquery,backbone.js,backbone-views,jquery-widgets,Jquery,Backbone.js,Backbone Views,Jquery Widgets,我有一个自定义jQuery小部件,它是从我的应用程序调用的,该应用程序使用backbone.js for MVC。如何在自定义jQuery小部件中使用主干事件模式 function( $ ) { $.widget( "medex.chooser", { ... _create: function() { // Would I create a new backbone view here??? } } 谢谢。我认为您需要定义一个自定义视图,然后由自定义小部件调用 在

我有一个自定义jQuery小部件,它是从我的应用程序调用的,该应用程序使用backbone.js for MVC。如何在自定义jQuery小部件中使用主干事件模式

function( $ ) {
  $.widget( "medex.chooser", {
  ...
  _create: function() {
      // Would I create a new backbone view here???
  }
}

谢谢。

我认为您需要定义一个自定义视图,然后由自定义小部件调用

在应用程序初始化代码中,例如:

APP = {};          // your app's global object
APP.Views = {};

APP.Views.WidgetView = Backbone.View.extend(
{
    events: {
        "click .grid1" : "onGrid1Click"
    },

    initialize: function() {
        // code here
    },

    onGrid1Click : function(evt) {
        // code here
    }
});
然后,这将是小部件的构造函数代码:

function Widget(element) {
   this.view = new APP.Views.WidgetView({ el: element });
}

这段代码可能不是完全有效的,但应该能让您了解所寻找的结构。让我知道这是否适合您。

如果您仍在寻找答案,您可以将小部件转换为视图。 从小部件转换为视图的基本规则如下:

  • _创建变为初始化
  • this.element变为this.$el
  • 刷新变成渲染
  • 毁灭变成移除
  • $('.someDiv').myWidget()成为新的MyView({el:$('.someDiv')})
  • 选项必须成为构造函数参数,但可以通过两种不同的方式处理

为什么不正常创建视图,但给它一个小部件的
元素
新视图({el:this.element})
?谢谢,但我希望自定义小部件处理事件。小部件就是视图吗?小部件包含视图?视图包含小部件?还是别的?那是我的问题。小部件是否应该包含视图?小部件基本上并排布置了2个jqgrid,并允许用户将行从一个移动到另一个。我想知道是否有在小部件中创建视图的最佳实践——也许我想得太多了。