小编use*_*947的帖子

如何知道Backbone model.fetch()何时完成?

我绑定了我的骨干模型的更改事件.

this.model.on( "change", this.render, this );
Run Code Online (Sandbox Code Playgroud)

有时我想获取模型的最新版本并强制渲染视图.所以我这样做

this.model.fetch();
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果新数据与先前存储在模型中的数据不同,model.fetch()仅触发change事件.

当获取完成时,我怎样才能始终触发this.render回调,无论它是否触发更改事件?

在此先感谢您的帮助

javascript backbone.js backbone-events backbone-model

11
推荐指数
1
解决办法
1万
查看次数

mySql REGEXP中的逻辑AND运算符?

我使用MySql REGEXP:

SELECT * FROM myTable
WHERE title REGEXP "dog|cat|mouse";
Run Code Online (Sandbox Code Playgroud)

数据集很小,所以我不关心性能.我更喜欢这个比LIKE表示法,因为我不必连接一堆"LIKE"语句.

但是,上述表示法使用逻辑OR运算符.是否有逻辑AND运算符,以便只包含所有关键字的行?

(我正在使用InnoDB所以全文搜索不是一个选项)

regex mysql

11
推荐指数
1
解决办法
1万
查看次数

使用FormData上传base64编码的图像?

我有一个jpeg作为base64编码的字符串.

var image = "/9j/4AAQSkZJRgABAQEAS..."
Run Code Online (Sandbox Code Playgroud)

我想使用FormData将此jpeg上传到服务器.

var data = new FormData();
Run Code Online (Sandbox Code Playgroud)

将图像附加到数据的正确方法是什么?

javascript form-data

10
推荐指数
3
解决办法
3万
查看次数

使用jQuery UI Widget Factory创建实例变量的正确方法

我正在使用jQuery UI小部件工厂.

$.widget("myPlugin" , {

    options: {
    },

    _create: function() {
    },

    instanceVar: "huzzah!"

});
Run Code Online (Sandbox Code Playgroud)

在测试时,看起来instanceVar实际上是原型的一部分.所以插件的所有实例都是一样的.

我可以通过将instanceVar放入选项来解决这个问题,如下所示:

$.widget("myPlugin" , {

    options: {
        instanceVar: "huzzah!"
    },

    _create: function() {
    },

});
Run Code Online (Sandbox Code Playgroud)

然而,这似乎很奇怪,因为instanceVar只是插件使用的内部变量 - 而不是插件的用户应该能够改变的东西.

有另一种(更好的)方法来实现这一目标吗?

谢谢你的帮助!

jquery jquery-ui jquery-ui-widget-factory

9
推荐指数
1
解决办法
7502
查看次数

(不是这样)聪明的密钥导致Node JS中的SHA512 Hmac出现问题

这是一个古怪的问题,但我现在已经工作了好几个小时,并没有取得多大进展.我希望有人能提出建议......

我正在将脚本从php移植到节点.php脚本使用了这个函数:

hash_hmac('sha512', $text, $key);
Run Code Online (Sandbox Code Playgroud)

我在节点中使用加密模块重现了这个:

var hash = crypto.createHmac( "sha512", key );
hash.update( text );
return hash.digest( "hex" );
Run Code Online (Sandbox Code Playgroud)

我已经验证了这些函数在给出相同的文本和键时会产生相同的哈希值.

除了...

用于php中的键的字符串看起来类似于:(不要问)

define("SITE_KEY", "
                                           __
     ,                                   ,' e`---o
    ((                                  (  | ___,'
     \\~-------------------------------' \_;/
     (                                     /
     /) ._______________________________.  )
    (( (                               (( ( 
     ``-'                               ``-'

");
Run Code Online (Sandbox Code Playgroud)

我试图在Javascript中重现这样:

var key = "\
                                           __\
     ,                                   ,' e`---o\
    ((                                  (  | ___,'\
     \\\\~-------------------------------' \\_;/\
     (                                     /\
     /) ._______________________________.  )\
    (( (                               (( ( \
     ``-'                               ``-'\
\
";
Run Code Online (Sandbox Code Playgroud)

但它不起作用.(我认为它必须与换行符有关).

使用"\ r \n"或"\n"替换换行符,如下所示也不起作用: …

javascript hmac sha512 node.js

8
推荐指数
1
解决办法
620
查看次数

jQuery Callback和Pub/Sub

在过去,我通过在窗口上绑定在jQuery中完成了非常简单的pub/sub.

// subscribe
$( window ).on("someEvent", function() { ... });

// publish
$( window ).trigger("someEvent");
Run Code Online (Sandbox Code Playgroud)

但是我最近了解了新的回调功能,这似乎是在jQuery中处理pub/sub的推荐方法.

使用回调有什么好处,而不仅仅是在窗口上绑定?对于像上面这样的简单系统,使用回调功能是否过度杀伤?

编辑:这里有更多关于我如何使用上述内容的信息......

这有点我有时会允许我的jQuery插件相互通信.例如,我有自己的需要通信的可拖动和可放置的插件.

当拖动开始,更新和停止时,可拖动插件会触发窗口上的自定义事件.droppable插件会监视这些事件并做出相应的反应.

// in draggable

onStart: function() {
  $( window ).trigger("dragger.start", [data]);
}

// in droppable

$( window ).on("dragger.start", function(event, data) {
...
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery publish-subscribe jquery-callback

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

Backbone/RequireJS嵌套列表中的循环依赖

我在Backbone中使用RequireJS设置了一个嵌套的类别结构.

在此结构中,类别集合包含类别模型,单个类别模型可以包含类别集合.

不幸的是,这似乎导致RequireJS中可怕的循环依赖问题.我已经阅读了关于RequireJS的文档(http://requirejs.org/docs/api.html#circular)但是我发现'a'和'b'的解释令人困惑.

这是我的代码,导致问题:

define([

    "jquery",
    "underscore",
    "backbone",
    "collections/categories"

    ], function( $, _, Backbone, CategoriesCollection ) {

    var Category = Backbone.Model.extend({

        defaults: {
            title: "Untitled"
        },

        parse: function(data) {
            this.children = new CategoriesCollection( data.children, {parse: true} );
            return _.omit( data, "children" );
        }

    });

    return Category;

});
Run Code Online (Sandbox Code Playgroud)

...

define([

    "jquery",
    "underscore",
    "backbone",
    "models/category"

    ], function( $, _, Backbone, CategoryModel ) {

    var Categories = Backbone.Collection.extend({
        model: CategoryModel
    });

    return Categories;

});
Run Code Online (Sandbox Code Playgroud)

我想知道以前经历过这个的人是否可以帮助引导我朝着正确的方向前进.

在此先感谢您的帮助,

javascript jquery circular-dependency requirejs backbone.js

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

如何配置Express响应对象以自动向JSON添加属性?

我有一个对象:

var obj = { "stuff": "stuff" }
Run Code Online (Sandbox Code Playgroud)

在Express中,我像这样发送客户端:

res.json(obj);
Run Code Online (Sandbox Code Playgroud)

有没有办法配置响应对象以自动将属性添加到它生成的json?例如,要输出:

{
  "status": "ok",
  "data": { "stuff": "stuff" }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript connect node.js express

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

如何防止骨干模型收集事件传播?

如何防止Backbone Model事件传播到Backbone Collections?

编辑:

假设我有类似下面的内容,其中CollectionView包含MyModels的集合......

var CollectionView = Backbone.Collection.Extend({
    initialize: function() {
        this.collection.on("change", doStuff);
    }
});

var ModelView = Backbone.View.Extend({ 
    initialize: function() {
        this.model = new MyModel();
        this.model.on( "change", doStuff );
        this.model.fetch();
    }
});
Run Code Online (Sandbox Code Playgroud)

如果在特殊情况下我不希望"更改"事件在获取完成后传播到集合,我想知道是否有任何方法可以阻止它.

谢谢

javascript jquery backbone.js backbone-events

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

如何使用选项“包含”调整图像大小但保留原始尺寸的纵横比?

我有一个 1000 像素 x 750 像素的图像。

我使用 lovell/sharp 来调整它的大小:

await sharp(image)
    .resize({
        fit: sharp.fit.contain,
        width: 800,
        height: 800
    })
    .jpeg({ quality: 80 })
    .toBuffer()
Run Code Online (Sandbox Code Playgroud)

这会生成一个 800 像素 x 800 像素的新图像,原始图像“包含”在该区域内。

我真正想要的是有一个 800 像素 x 600 像素的最终图像。IOW,调整图像大小并保持纵横比。

我意识到可以通过仅指定宽度来做到这一点。然而,有一个边界框来包含调整大小的图像是有用的,以避免创建大于特定高度的图像。

我可以在不同的设置下清晰地做到这一点吗?

javascript node.js sharp

7
推荐指数
2
解决办法
7507
查看次数