小编Jes*_*sen的帖子

来自NPM的骨干通过JSPM

我正在尝试使用JSPM从NPM安装backbone.marionette以进行客户端依赖性解析.使用commandprompt中的以下命令进行简单操作:

jspm install marionette = npm:backbone.marionette

除了jquery之外的所有依赖项都会自动下载和安装.但是我收到运行时错误:

无法调用延迟未定义.

我正在查看代码,我发现问题出现在主干源代码行9,10和11中

} else if (typeof exports !== 'undefined') {
  var _ = require("underscore");
  factory(root, exports, _);
Run Code Online (Sandbox Code Playgroud)

在运行时traceurJS,factory-method从这里调用,很明显,最后一个参数$被省略了.当我查看github上的主干源代码时,相同的行看起来像这样:

} else if (typeof exports !== 'undefined') {
var _ = require('underscore'), $;
try { $ = require('jquery'); } catch(e) {}
factory(root, exports, _, $);
Run Code Online (Sandbox Code Playgroud)

这里使用选项(try/catch)添加jquery依赖项.我必须在此添加,NPM版本标记与GitHub - 1.1.2相同的版本.

为什么不同? 好像这已经成为问题一段时间了,发布了一些解决方法,比如在代码中添加这个:

$           = require('jquery');
Backbone    = require('backbone');
Backbone.$  = $
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个,虽然它有效,因为它是一种解决方法,似乎它"不存在".

jquery backbone.js jspm

18
推荐指数
0
解决办法
553
查看次数

如何使用FakeItEasy伪造代表

当我尝试伪造委托类型时,我得到System.InvalidCastException

[TestMethod]
public void TestDelegateFake()
{
    var func = A.Fake<Func<long, object>>();

    A.CallTo(() => func(A<long>.Ignored))
        .Returns(new {});

    func(123);
}
Run Code Online (Sandbox Code Playgroud)

我如何伪造代表?

fakeiteasy

5
推荐指数
1
解决办法
1652
查看次数

模型上的日期属性

有没有办法让ISO-date解析为javascript-dates om Backbone模型.假设一些JSON返回如下模型数据:

    { prop1: "somevalue", date: "2011-05-11T18:30:00" }
Run Code Online (Sandbox Code Playgroud)

为了使这项工作成为一个约会,我提出了这个:

    var Model = exports.Model = Backbone.Model.extend({
        toJSON: function () {
            return _.extend(this.attributes, {
                date: new Date(this.attributes.date)
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

这工作正常,并且可以编写模板标记,如下所示:

    "<%=date.toLocaleDateString() %>"
Run Code Online (Sandbox Code Playgroud)

一切都很好,但不能以某种方式在BackboneModel原型上完成.这种方式我必须在类型为date的每个模型属性上编写此实现 - 这不是很干

backbone.js

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

标签 统计

backbone.js ×2

fakeiteasy ×1

jquery ×1

jspm ×1