我希望在我的Backbone.js路由器中触发路由之前和之后分别调用setup/teardown方法。有没有人创造了一种优雅的方式 您考虑过吗?包裹不是一个解决方案,例如,如果您有20条路线,您必须将它们全部包裹起来
但是你可以用元编程来实现这一点
class Backbone.FlexRouter extends Backbone.Router
route: (route, name, handler) ->
super route, name, ->
@t
我的观点是这样的:
window.templateLoaderView = Backbone.View.extend({});
window.PopupView = templateLoaderView.extend({
initialize: function () {
this.PopupModel = new PopupModel();
this.event_aggregator.bind("tasks_popup:show", this.loadTas
我希望在从远程服务器异步加载集合时呈现视图。我有下面的收集课
class BusinessUnits extends Backbone.Collection
model: BusinessUnit
parse: (units) ->
units
然后我的观点是我在这样做:
load: (businessUnits) =>
@collection = businessUnits
@collection.fetch()
@render()
我有两个不同的HTML页面提供主干应用程序。到目前为止,我已经将所有js模板放在每个HTML文件中
现在,我正在进行一点重构,并希望在文件之间共享一些主干视图。加载找不到js模板的视图时,整个应用程序都会出错。我知道合并这两个模板的正确方法是使用外部js模板,例如使用EJS,每个文件有一个模板,但是,我只希望有一个嵌入的巨大HTML文件,并在我的两个页面之间共享模板HTML文件。这可能吗?我尝试使用AJAX获取外部js模板并将其写入头部,但主干视图仍然找不到它们
是否有其他人选择拥有一个包含许多
我正在探索backbone.js框架,我感兴趣的是如何从js对象获取集合的模型。假设我有以下简单的应用程序
<html>
<head>Backbone.js</head>
<body>
<script type="text/javascript">
var data = [{id:1, name: 'Erik'}, {id:2, name: 'John'}]
</s
我是BackboneJS新手,我一直在使用带有RequireJS的主干关系模型处理嵌套关系——我想我遇到了循环问题。任何帮助都将不胜感激
我有以下型号和系列:
/* Module Model at models/module*/
define([
'jquery',
'underscore',
'backbone',
'backboneRelational',
], function($, _, Backbone) {
var ModuleModel = Backbone.Rel
是否可以在视图中绑定body元素上的事件
例如,这不起作用
Backbone.View.extend({
el : "#some element here",
events : {
"mouseup body" : "onMouseUp"
}
});
提前谢谢我想这是不可能的
内部使用看起来像的内部使用
您可以将position:absolutediv添加到elDOM元素中,使其透明并全屏显示。然后从那里捕获事件。我想我找到了一个有效的解决方案
在初始化函数中,我执行
$(
我试图在questionListView中使用render函数,它似乎正在运行,但没有更新页面
模板:
<script id="myTemplate" type="text/template">
<p>Test</p>
</script>
谢谢 是否在对document.ready事件的回调中触发此事件?否则,代码可能会在DOM实际加载并准备就绪之前执行。尝试:
$(function () {
var app = new AppView
我在http://restservice.net。我正在主干网中为该服务实现一个客户端。客户端只是一个html文件(用于引导应用程序)和一堆js文件,其中包含我的backbonejs代码。我正在另一个网站上托管这些文件http://client.net
我的backbonejs代码正在调用http://restservice.net但由于同一原产地政策现在允许。我已经看过了其他关于我如何只能与http://client.net
我是否必须通过重定向每个请求http://client.net。我认
有点奇怪
我有收藏:
class Store.Collections.Product extends Backbone.Collection
url: '/api/products'
model: Store.Models.Product
有人认为:
class Store.Views.Origin extends Backbone.View
initialize: ->
@collection = new Store.Collections.Product
我有一个名为Form的视图,它可以呈现一个表单来编辑列表,也可以呈现列表本身,具体取决于传递给render的参数。我添加了事件处理程序,以便可以切换显示/编辑模式。为了保持简单,我从下面的代码中删除了这一点,但这只是为视图在上下文中所做的事情提供了一点上下文
我可以将这个表单视图实例化为另一个视图中的子视图,该视图需要呈现表单或列表,我在新视图中已经这样做了,在新视图中它将呈现为表单
当我需要保存时,我调用form:save事件,它在表单视图中触发一个保存表单的例程,我刚刚让它在这里调用cons
我想在Jasmine测试套件中使用require.js作为主干;我正在进行设置
我已经看到了在这个测试设置中的使用:
现在,我想在游戏中注入主干:
describe("Basic view test", function() {
var view;
requireDependencies(["underscore", "backbone"], function(_, Backbone) {
view = Backbone.View.extend({el: "li" });
在backbone.js中,我想做:
initialize: =>
@collection.on("add", @appendModel(model)) # <- how to correctly write it?
render: =>
# do some render
@collection.each(@appendModel())
appendModel: (model) ->
# append model to $el
初始化:=>
@col
这是我的困境。我有一系列的表格,上面有我们各种联系方式的线索。我们也有表格中的垃圾邮件。但偶尔,潜在客户可能会被错误地路由到垃圾邮件表。因此,我需要将潜在客户从一个表移动到另一个表,这意味着在一个表中插入潜在客户,然后从另一个表中删除潜在客户
据我所知,当主干调用save方法时,它会检查表中是否存在该id。如果没有,它会发出POST请求。如果是,则发出PUT请求。我需要能够强制主干网发出POST请求,以便Laravel能够调用正确的RESTful操作
请看,问题在于,如果主干网发出PUT请求,表
A有一个项目集合,我想将其呈现到模板中的现有elment中。我的问题是视图总是将列表包装在DIV标记中。如何仅呈现列表而不呈现任何包装元素
模板:
<script type="text/template" id="template-select">
<% _(elements).each(function(element) { %>
<option value="<%= element.id %>"><%= e
我有一个主干模型的编辑视图,每次单击元素时都会创建该视图。我遇到的问题是编辑视图需要两个主干集合来创建编辑表单(它包含两个列表)
观点:
MyApp.elementView = Backbone.View.extend({
events: {
'click .edit': 'editForm',
},
editForm: function(ev) {
var editView = new TimeTrack.Views.E
我不明白为什么在集合视图渲染中不更新DOM:
class FastTodo.Views.TodoItemsIndex extends Backbone.View
template: JST['todo_items/index']
el: '#main'
render: ->
$(@el).html @form_view.render()
@collection.each @renderOne
renderOne: (item) ->
console
我相信这是一个非常普遍和基本的主干问题,但我找不到答案
我想在每次更改后保存一个模型,但从服务器获取的初始数据除外
例如:
MyModel = Backbone.Model.extend({
url: "myModelUrl",
initialize: function () {
this.on("change", this.save, this);
}
});
在获取它时,由于它有一些数据,我得到一个更改事件,然后再次触发保存
var myMod
我正在尝试将vent/EventAggregator设置为一个单独的Require.js模块。我使用的是Marionette 1.0.2(我相信它的实现与1.0.0之前的旧版本不同),其中包含wreqr:此代码来自主干网。Marionette.js:-
// Event Aggregator
// ----------------
// A pub-sub object that can be used to decouple various parts
// of an app
我使用一个复合视图来显示一个带有主干木偶的表,但是在我对模型进行获取之后,当数据进入时,让模板的包装部分重新加载会遇到一些问题。以下是我的模板:
复合视图的模板:
<thead>
<tr>
{{#each report.columns}}
<th>{{name}}</th>
{{/each}}
</tr>
</thead>
<tbody></tbody>
{{#each cols}
在我的主干网应用程序中,REsT服务总是返回JSON数据,所以我应该始终使用this.collection.toJSON(),还是可以在获取集合后直接使用this.collection将数据绑定到下划线模板?最好将主干网的集合/模型对象直接传递到下划线模板,因为向输出属性格式化值的模型添加方法很方便。检查此示例(假设模型具有自定义方法getFormattedDate)
this.$el.html(this.template({collection:this.collection}))
-
是否有关于backbone.js的好文档?我正在努力学习,但是阅读官方网页对我来说并不方便,因为它的结构不好。
例如,阅读有关模型的文章时,会对集合进行一些解释,稍后将对集合进行描述。因此,如果有一份结构良好的文档,以便于理解的顺序描述了所有内容,请提出建议。我可以告诉您,我使用了哪些资源来掌握主干(我是一名后端开发人员,出于个人项目的需要而转为前端)
有很好的例子,从基础到高级,对我来说很容易理解。也都是例外,并证明对我有用。不用说,我不是这些资源的所有者,我只是带来了我自己的经验
话虽如此,
我正在尝试从我的服务器(node.js)获取mongodb集合,并使用主干在模板(下划线)上呈现此内容。Mongodb和node.js部分工作正常,因为我证明了我对集合做了一个console.log,它为我带来了集合。我有下面的代码(我剪切了一些不相关的代码部分):
router.js
bookListView.js
bookListItemView.js
我的问题是this.model.models=undefined,我不明白为什么在同一个代码完美运行之前5分钟会导致。如果我使用consol
我有一个基于这个例子的多页面主干应用程序:对于基本url来说,它工作得很好。当我导航到一个不再位于域根目录的页面时,问题就出现了
目录结构如下所示:
scripts
├── app
│ ├── controller
│ │ ├── Base.js
│ │ ├── c1.js
│ │ └── c2.js
│ ├── lib.js
│ ├── main1.js
│ ├── main2.js
│ ├── model
│
我有一个视图,它在一些select控件上定义了一个更改事件,但它们似乎没有启动。视图是这样的:
var FiltersView = Backbone.Marionette.ItemView.extend({
template: FiltersTmpl,
events: {
'change #panel_filters select': 'enableSearch'
},
enableSearch: function() {
debu
我刚刚发现了解决问题的方法。可以按如下方式触发应用程序事件:
routes: {
'childView/:name': 'route:childView'
// 'someHashLocation/:andItsParams': 'some:appEvent'
},
路线:{
'childView/:name':'route:childView'
//'someHashLocation/:andItsParams':'some:appEvent'
},
由于通常路由事件是由回
我用的是yiibackbonebilerplate。我想用如下数据填充模型:
protected function sendResponse($status = 200, $body = '', $contentType = 'application/json')
{
// Set the status
$statusHeader = 'HTTP/1.1 ' . $status . ' ' . $this->getStatusCodeMessage($status);
我一直在考虑使用backbone.js重建一个非常过时的内部CMS,这样我就可以构建更多的应用程序而不是网站。
到目前为止,我对主干网很满意,并且我添加了require.js来将应用程序分解成模块,但有一件小事困扰着我
我对主干网的印象是,可以在单个初始负载中向用户交付应用程序,但由于添加了require.js,所有模型、集合、视图和模板都是在临时基础上单独获取的
是否可以将我的应用程序分解为模块化有效负载?例如,如果用户进入CMS的新闻部分,他们将获得该模块所需的所有视图、模型等?我能想到的唯
由于某些原因,我不能在我的主干应用程序中多次实例化视图。我得到的未定义不是一个函数。为什么会这样
应用程序咖啡
define [
'views/start'
], (
StartView
) ->
initialize = ->
# Take us to the start view
startView = new StartView()
startView.render() # Works just fine
initialize
因此,我有几种类型的数据:
Post
项目
事件
每个数据模型都有自己的集合和查看路径:
/posts => app.postsCollection
/projects => app.projectsCollection
/events => app.eventsCollection
现在我想添加另一条路线:
/=>app.everythingCollection
如何创建一个集合,该集合显示其他三个集合的集合,但不再次获取所有后期项目和事件数据
类似地,调用eve
我在尝试使用主干从表单保存模型时遇到问题。在这里,我希望我的视图实际上是一个编辑表单:
(function() {
'use strict';
var YachtEditor = {};
window.YachtEditor = YachtEditor;
var template = function(name) {
return Mustache.compile($('#' + name + 'Template').html());
我正在使用主干网1.0.0,并在获取后阅读这里的内容
已调用集合集以“智能”更新集合
哪个事件是在“智能更新”后触发的?我尝试了“更改”,但没有成功。
我不得不打电话给警察局
{reset:true}
并使用“添加”事件,但我真的不想重置集合 调用fetch()也会在数据返回后调用set(),然后触发“智能”更新。此智能更新应触发更改事件。此外,这种行为应该存在于1.0.0中
您能给我们看一下代码吗?成功获取()后会触发“同步”事件。我知道在fetch()之前触发了“reset”
如果在主干集合上使用比较器,我是否能够将具有相同属性的模型嵌套到div中?例子
// My dummy json
[{name: 'Robert', team: 'Redskins'},{name: 'Aaron', team: 'Packers'},{name: 'Kirk', team: 'Redskins'}]
这是我的收藏
var Players = Backbone.Collection.extend({
url: 'data/players.json',
compa
我试图在一个下划线js模板中正确使用我的unix日期
在我的模板中,有两个unix日期来自一个主干视图,该视图初始化当前模板并将这两个日期作为参数传递
在我的模板中,我现在需要比较这两个日期,并得到它们之间的天数。在我看来,我不能那样做。我需要在下划线模板中执行此操作
我使用的是moment.js
<% collection.each(function(model,index) { %>
<%
uploaded = mom
我想在Backbone.ja应用程序中,在我的谷歌地图上的标记上切换打开和关闭Infowindow div
在我看来,我有一个初始化函数,它包含google.maps.event.addListener
function initialize(viewOptions, app) {
this.app = app;
this.address = '';
this.terms = [
'Food',
'Bar'
];
// this.listenTo(
我知道它的“this.collection”值将只显示第一个集合,但这是否与主干兼容?还是会自动从以前的收藏中删除
var MyModel = Backbone.Model.extend({defaults: {test: '123'}});
var MyCollection1 = Backbone.Collection.extend({model: MyModel});
var MyCollection2 = Backbone.Collection.extend({model: MyModel
我正在做一个backboneJS/HandlebarsJS单页项目,我有点像一个有主干的noob(我通常使用AngularJS)。我希望将每个模板(页眉、侧边栏、页脚、内容)保存在单独的文件中,以供组织使用
我读过一些帖子,上面说你应该将模板保存在单独的文件中进行开发,然后将它们合并到一个文件中进行生产。我非常确定它们将是.html文件,但我不确定将它们与什么工具组合
从文件加载模板的正确方法是什么?我是否将这些文件合并为一个文件并导入?是否有一种工具可以更轻松地完成此操作?
如果你有一个教程,
我是个新手。我正试图通过主干实现tabs。有三个视图TabView、TabListView和appView。我的想法是使用appView中的TabView加载TabListView
模板和其他HTML内容已在另一个页面中处理。我已经设法完成了这一页。但它不会返回包含以下语句的数据
此.$el.htmlnew TabListView.render.el
下面是我的代码的完整列表
var app = app || {};
var Tab = Backbone.Model.extend({
我的观点是绑定模型和集合
var editUserPanel = new List.EditUserPanel({
collection: roll_st,
model: dm
});
我用过html
<% _.each(items, function(item){ if(item.category == "STGroup") { %>
<optio
在我的应用程序中,我使用带有Handlbar插件的requirejs,我与我的应用程序集成
但我一直在犯错误,我不知道为什么
这是我的错误:
我需要配置文件:
require.config({
baseUrl :'bower_components',
paths: {
"scripts":'../scripts',
"jquery":"jquery/jquery.min",
"underscore" :"underscore-amd
我正在使用主干在我的主页上呈现一个视图。在这个视图中,我有一个包含电影标题(纯文本)的视图。当我点击一个li元素时,我想在我的控制台中显示它的内容
我用的是这个,
events: ->
"click li": "showtext"
showtext: ->
litext = $(this).text()
console.log litext
在我看来,这应该行得通。它应该给我单击的li元素的文本。它确实在控制台中给了我一些反馈,但它是空的
阅读后,很明显,此针对的是
我正在阅读Backbone.js代码,找不到Backbone.Model.extend方法的定义
它在哪里?在源代码的末尾,下面有一个帮助函数,用于正确设置子类的原型链:
然后分配给所有主干原型
Model.extend = Collection.extend = Router.extend = View.extend = extend;
直接在Model.prototype中添加extend方法可以吗?在这里,var Model=Backbone.Model=function(){/*一些代
toresolvelist.toJSON()不返回任何内容(而不是集合的对象)
我想这是一个等待集合被正确填充的问题,但我认为这是可以的,因为我在添加它之前等待模型获取成功
当我console.log(toresolvelist)时,它显示结果在这里。但是我不能通过.get或toJSON访问它,所以我猜console.log欺骗了我
我很难确定问题是什么,但我无法解决它
提前多谢 要获得模型的完整列表,需要等待每个XHR调用的解析。这可以在模型返回的值上完成。fetch:
var RippleI
在backbone.js应用程序中,集合和模型如何区分?我们可以使用view呈现集合吗?如果可以,那么最佳做法是什么
视图/布局及其层次结构:
主干事件生命周期:
请试着解释你想做什么我想没有人理解你的要求
我在使用嵌套集合的backbonejs中遇到了一些架构问题。我有一个模型集合,在每个模型中,它可以包含和孩子们相同的模型集合。所以在父视图渲染中,我渲染子集合并将其dom附加到父视图。它工作得非常好
但在父模型更改时,我正在重新渲染其视图,这将导致其子对象再次渲染。但当父对象模型发生变化时,我不想创建子对象dom,因为子对象集合没有变化。我可以在不重新渲染的情况下使用子dom吗。我有没有办法做到这一点
父视图代码:
RowView.prototype.initialize = function(
我有一套路线,如下所示:
routes: {
'!/home': 'home',
'!/home/:page': 'home'
}
我想知道的是,如何配置路由,以便在用户请求未知页面时,我可以轻松重定向到路由器中的静态404.html页面?(例如,前两条路由):
最后一条路线可能是最普通的路线,它将拾取更多特定路线无法识别的所有内容。“:whatever”将仅与第一条路线匹配。使用“*whater”匹配任意数量的URL组件*任何最终匹配我所有路由的组件-我希望只有在其他URL都不匹配时
我有一个模型和一个视图。该视图显示模型的属性,并允许用户操作这些属性。问题是当一个属性被修改时,它会重新呈现整个视图,这给我带来了很多问题
文本输入上的示例模糊事件将新输入保存到属性,从而触发渲染。这意味着,如果用户从该文本输入直接单击同一视图上的按钮,该事件将永远不会触发,因为触发的第一个事件将模糊,导致整个视图重新渲染,从而丢失按钮单击事件
我有两个想法:
具有单个视图,其中每个属性都位于单独的模板中。然后我绑定到一个特定的属性更改事件,并在render中只更新更改属性的html。这看起来像
我开始学习requirejs的主干
我在网上学习了一些教程,现在我有点怀疑。
当我从Json获取数据时,将我打印到控制台日志中的行太多,如果在我的Json中有4个元素,它将打印我4*4个元素。
这是我的代码:
收藏:
define(['backbone', 'models/todo'], function(Backbone, TodoModel){
var todoCollection = Backbone.Collection.extend({
model: Todo
我在我的木偶项目视图中声明了多个模板,当我呈现我的项目视图时,我会说我要使用哪个模板
templates: {
'images': ImageResultTmpl,
'music': MediaResultTmpl,
'videos': MediaResultTmpl
},
在ItemView中的方法中,是否可以获取活动模板的名称
if(music){
do this;
}
else{
do that;
}
我的第一个想法是,每个模板应该有不同的Ite
我的第一步指向一个用户必须单击的按钮,然后在单击按钮后,会弹出一个对话框,用户可以在其中填写一些详细信息
发生的事情是,我只是得到背景和介绍没有指向对话框,因为它开始加载页面时,对话框还没有在页面上
有办法做到这一点吗?(主干和简介)
我正在使用主干来呈现点击按钮时的对话框我从未使用过intro.js,但是查看他们的文档,看起来他们有方法在pageload之外的时间向你的简介添加步骤。将html添加到页面后,应该在主干视图的呈现方法中添加涉及对话框的步骤。(如果您愿意,也可以在那里处理所有的in
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 121 页