我正在尝试使用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)
我不喜欢这个,虽然它有效,因为它是一种解决方法,似乎它"不存在".
当我尝试伪造委托类型时,我得到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)
我如何伪造代表?
有没有办法让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的每个模型属性上编写此实现 - 这不是很干