小编cor*_*ram的帖子

Backbone.js空数组属性

我遇到了一个Backbone.js模型的奇怪问题,其中一个数组成员显示为空白.它看起来像这样:

var Session = Backbone.Model.extend({
    defaults: {
        // ...
        widgets: []
    },
    addWidget: function (widget) {
        var widgets = this.get("widgets");

        widgets.push(widget);
        this.trigger("change:widgets", this, widgets);
    },
    // ...
    // I have a method on the model to grabbing a member of the array
    getWidget: function (id) {
        console.log(this.attributes);
        console.log(this.attributes.widgets);

        // ...
    }
});
Run Code Online (Sandbox Code Playgroud)

然后我通过添加一个小部件addWidget.尝试getWidget我得到的结果(在Chrome中)是这样的:

Object
    widgets: Array[1]
        0: child
        length: 1
        __proto__: Array[0]
    __proto__: Object
[]
Run Code Online (Sandbox Code Playgroud)

它显示记录时窗口小部件不为空,this.attributes但在记录时显示为空this.attributes.widgets.有谁知道会导致什么?

编辑 我已经更改了模型以在初始化方法中实例化窗口小部件数组,以避免跨多个实例的引用,并且我开始使用骨架嵌套而没有运气.

javascript arrays backbone.js

13
推荐指数
2
解决办法
4129
查看次数

实习生配置不处理AMD垫片

我正在尝试使用Intern测试Require.js项目.我在我的测试中遇到错误,在加载jQuery插件时没有定义jQuery.我的loader配置如下所示:

loader: {
    // Aliased paths
  paths: {
    'dt': 'dt',
    'jq': 'jquery',

    'jquery': 'jquery/jquery-1.8.3',
    'jquerymx': 'jquery/jquerymx-3.2.custom',
    'jquery.ui': 'jquery/jquery-ui-1.9.2.custom.min',
    'jquery.ui.widget': 'jquery/jquery.ui.widget',
    'jquery.jscrollpane': 'jquery/jquery.jscrollpane.min.edit',
    'jquery.colorbox': 'jquery/jquery.colorbox-min',
    'jquery.selectbox': 'jquery/jquery.selectbox-0.2.min.edit',
    'jquery.base64': 'jquery/jquery.base64',
    'jquery.cookie': 'jquery/jquery.cookie',
    'jquery.urldecoder': 'jquery/jquery.urldecoder.min',
    'jquery.fileupload': 'jquery/jquery.fileupload',
    'jquery.history': 'history/scripts/compressed/history.adapter.jquery',

    'openajax': 'openajax_2.0.7/OpenAjaxUnmanagedHub',
    'zeroclipboard': 'zeroclipboard/ZeroClipboard'
  },

  // Plugin mappings
  map: {
    '*': {
      'css': 'requirejs/require-css/css',
      'text': 'requirejs/text'
    }
  },

  // Shims for non-AMD libraries, mainly jQuery plugins
  shim: {
    'openajax': {
      exports: 'OpenAjax'
    },

    'zeroclipboard': {
      exports: 'ZeroClipboard'
    },

    'jquerymx': ['jquery'],
    'jquery.ui': ['jquery'],
    'jquery.ui.widget': ['jquery'], …
Run Code Online (Sandbox Code Playgroud)

intern

7
推荐指数
1
解决办法
914
查看次数

PointerEvents 未检测到 Wacom 数位板

我正在尝试使用指针事件来检测包括笔压力在内的数位板输入,但 Chrome 和 Firefox 似乎无法正确读取数位板设备 (Wacom Intuos 4)。所有指针事件都返回与我的鼠标相同的指针 ID 和指针类型,默认压力读数为 0.5。我正在使用的代码如下所示:

container.addEventListener("pointerdown", (event) => {
    console.log(event.pointerId);
    console.log(event.pointerType);
    console.log(event.pressure);
}, true);
Run Code Online (Sandbox Code Playgroud)

这将输出“1”、“鼠标”和“0.5”。这发生在“pointerdown”、“pointermove”和“pointerup”事件中。

我已经在安装了适当驱动程序的 Windows 和 Linux 上尝试过这个,其他应用程序会检测笔压力(例如 Krita)。

Chrome 和 Firefox 是否还不能正确支持图形平板电脑,或者我只是做错了什么?

javascript wacom pointer-events

4
推荐指数
1
解决办法
1891
查看次数

IE 10拖放上传提供空数据传输

我有一些在IE 10中无法正常工作的拖放上传代码.我的事件处理程序看起来像这样:

dragCatcher.on('drop', function (e) {
  e.preventDefault();
  e.stopPropagation();
  console.log(e.originalEvent.dataTransfer.files);
}).on('dragenter', function (e) {
  e.preventDefault();
  e.stopPropagation();
}).on('dragleave', function (e) {
  e.preventDefault();
  e.stopPropagation();
}).on('dragover', function (e) {
  e.preventDefault();
  e.stopPropagation();
  console.log(e.originalEvent.dataTransfer.types);
});
Run Code Online (Sandbox Code Playgroud)

两人都console.log拿出来了undefined.我可以确认它不是一个控制台错误,因为e.originalEvent.dataTransfer.files[0]出现错误.我确定我错过了一些明显的东西,但我似乎无法弄明白.

javascript jquery html5 drag-and-drop

0
推荐指数
1
解决办法
2329
查看次数