在页面加载时,我通过这种技术将我的数据引导到我的集合中.这很好用,但是我遇到了一个问题,我有子模型也需要进行投射.
例如,我返回一个名为Book的JSON集合,每个book数组包含10-20个自称为Pages的模型.如果我尝试直接访问Pages,我会收到[object][object]
错误,因为Backbone无法确定它是什么类型的对象.
以前在我使用时fetch
,我会通过使用包含parse
动作的集合来解决这个问题.在parse
我会做这样的事情:
Collection_Books = Backbone.Collection.extend({
model: Model_Book,
parse: function (response) {
response.Pages = new Collection_Pages(response.Pages);
return response;
}
});
Run Code Online (Sandbox Code Playgroud)
现在我正在直接访问数据而不使用fetch
,文档意味着我不再能够访问该parse
方法.
如果我fetch
在页面加载时没有使用或调用服务器,我如何使用Books> Pages示例来转换子模型?
我正在使用require.js(http://requirejs.org/)来访问我网站上的许多功能,到目前为止它似乎运行良好.在尝试包含Google Analytics代码时,我遇到了一个问题.该代码似乎拒绝添加utm.gif,并且没有向Google发送信标.我想知道这是不是范围的事情.
define(function() {
var Analytics = {};
Analytics.Apply = function() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
}
return Analytics;
});
Run Code Online (Sandbox Code Playgroud)
ga.debug不会抛出任何错误,并且不会出现utm.gif.如果我将代码移到require.js之外(我的意思是模块化的javascript使用require.js,所以只需将其内联添加到页面中),utm.gif就会成功添加到页面中,ga.debug会发送它的信标.
我发现这个网站似乎成功使用它,但我不确定该网站的用途是什么:http://paceyourself.net/2011/05/14/managing-client-side-javascript-with-requirejs /
还有其他人遇到过将require.js和GA结合起来的问题吗?
我还是Java新手,所以我可能会遗漏一些明显的东西.
我有以下代码用于从我所有实体的列表中选择类类型:
public Array<?> PickEntities(Class<?> cls) {
Array<? super SpriteEntity> allEntities = new Array<Object>();
for (SpriteEntity entity : MyGame.AllEntities) {
if (entity.getClass() == cls) {
allEntities.add(entity);
}
}
return allEntities;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但这意味着当调用此方法时,我仍然需要将它强制转换到另一侧的类.例如:
asteroid = (Asteroid)PickEntities(Asteroid.class);
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用我传递给我的PickEntities类(cls参数)的类,然后将返回的数组(allEntities)转换为该类型.
有没有办法做到这一点?每当我尝试它时,只告诉我'cls'不是一种类型,不能用于演员.
这可能是一个非常简单的问题,但我很想找到答案.
使用骨干,我有这条线:
Person = Backbone.Model.extend();
Run Code Online (Sandbox Code Playgroud)
然后我在从URL填充的集合中使用它.为了这个例子,假设我有名字和姓,我想做的事情如下:
Person = Backbone.Model.extend({
FullName: this.get("firstName") + " " + this.get("lastName")
});
Run Code Online (Sandbox Code Playgroud)
我可以使用例如People.first().FullName()来调用内部主干.但是如果我将People.first()传递给我的视图并在模板中呈现它,它似乎不知道FullName是什么.
如何在Backbone中为模型添加自定义属性并在模板中使用?
干杯!
说我有以下代码,在记事本中嘲笑,所以原谅任何小错误:)
//Default page
public ActionResult Index()
{
var musicViewModel
{
Albums = GetTopSellingAlbums(5),
Genres = GetTopGenres(5),
Artists = GetTopArtists(5)
};
return View(musicViewModel);
}
[HttpPost]
public ActionResult Index(MusicViewModel musicViewModel)
{
//For the example, pretend I have a class called musicStoreSubmission in my
//viewmodel which holds a few different fields the user fills out.
if(ModelState.IsValid)
{
//Do some actions based on the user submitting a form
}
//Else, refresh page with errors in Modelstate.
var musicViewModel
{
Albums = GetTopSellingAlbums(5),
Genres = …
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET 4.0中有以下LINQ.我正在通过XML文件读取数据并尝试将结果过滤为强类型对象.
List<Books> books = (from q in _XmlConnection.Descendants("BookShelf")
select new
{
Title = q.Element("title").Value,
Author = q.Element("autor").Value
}).ToList();
Run Code Online (Sandbox Code Playgroud)
现在我可以做的是在此语句之后运行foreach并创建一个分配给列表的新Books对象.我想做的是包含LINQ语句中的所有内容,因此当我为Title或Author定义一个值时,它会立即将它分配给List <Books>.这样我就可以直接跳到"归还书".有没有办法做到这一点?
(注意:上面的代码返回一个错误,但是现在这很好.我可以使用"var books"并且它可以正常工作,但是我把它留下来显示我想要的样子).
干杯:)
javascript ×3
backbone.js ×2
.net ×1
actionresult ×1
analytics ×1
arrays ×1
asp.net-mvc ×1
casting ×1
controllers ×1
generics ×1
java ×1
linq ×1
require ×1