当我{"silent":true}在Backbone模型中设置属性时通过时,为什么不仅仅抑制change:attribute事件?下次更改属性时触发该事件的优点是什么?
更新
Backbone 0.9.10改变了传递的行为{ "silent": true }.来自更改日志:
传递
{silent:true}变化将不再拖延个人"变化:attr"事件,而是完全沉默.
在此处浏览更改日志
我有以下代码,我将更改绑定到单个属性"attribute_1".
var Mine = Backbone.Model.extend({
initialize: function() {
this.bind("change:attribute_1", function() {
console.log('changed!');
});
}
});
Run Code Online (Sandbox Code Playgroud)
如何绑定两个属性?这不起作用:
var Mine = Backbone.Model.extend({
initialize: function() {
this.bind("change:attribute_1, change:attribute_2", function() {
console.log('changed!');
});
}
});
Run Code Online (Sandbox Code Playgroud)
这也不是:
var Mine = Backbone.Model.extend({
initialize: function() {
this.bind("change:attribute_1 change:attribute_2", function() {
console.log('changed!');
});
}
});
Run Code Online (Sandbox Code Playgroud) 给出这些javascript变量:
var div_id = "my_div";
var h1_class = "my_header";
var a_class = "my_a_class";
var a_string = "teststring";
Run Code Online (Sandbox Code Playgroud)
和这个页面元素:
<div id="container"></div>
Run Code Online (Sandbox Code Playgroud)
我想用jQuery构建这个html结构:
<div id="container">
<div id="my_div">
<h1 class="my_header">
<a href="/test/" class="my_a_class">teststring</a>
</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在这里链接命令的最佳和最可读的方法是什么?
我正在使用twitter bootstrap,我clearfix在bootstrap中遇到类问题.我的HTML是:
<div class="pull-left">This is a text</div>
<hr class="clearfix" />
Run Code Online (Sandbox Code Playgroud)
我期待的是水平线应该出现在显示文本的下一行,但它会在文本的右侧呈现.而如果当我使用style='clear: both;'的hr不是它工作正常.为什么clearfix不这样做clear: both呢?
我有一些本地html/js文件,我想通过https调用一些远程服务器,并最终使用基本身份验证的请求.
我遇到两个问题.首先,如果我没有为dataType指定'jsonp',jQuery.ajax()请求将返回错误:
访问受限制的URI拒绝代码:1012
我的请求是否被视为跨域,因为我的主要工作文件存储在本地,但是从其他地方的服务器检索数据?
很好,我更新了呼叫,现在它看起来像:
$.ajax({
url: myServerUrl,
type: "GET",
dataType: "jsonp", // considered a cross domain Ajax request if not specified
username: myUsername,
password: myPassword,
success: function(result)
{
// success handling
},
error: function(req, status, errThrown){
// error handling
}
})
Run Code Online (Sandbox Code Playgroud)
因为我需要使用基本身份验证,我传递用户名/密码,但如果我监视请求,我看不到它被设置,此外,服务器发送错误响应,因为它没有预期的信息.
另外,因为我已经jsonp设置,所以beforeSend不会被调用.
如何使用基本身份验证为此请求传递凭据?
所以我正在设置一个具有更新属性的模型.
然后在我看来我正在听这个模型的变化事件.
当那个火我想我应该使用model.changedAttributes?我是否通过回调?
它应该返回所有已更新或新的属性的哈希值?反正知道哪些是更新的,哪些是新的?
一旦我有更改属性的哈希,我该如何进行更新?将对象解析为属性类型,还是应该从get go中使用更高分辨率的侦听器?
谢谢!
我需要用同步调用调用fetch,我知道jquery ajax我可以使用我可以{async: false}
通过这个选项来获取函数吗?
好的,所以我已经阅读了几个关于Backbone视图和未被触发的事件的其他问题,但是我仍然没有忘记它.我一直在乱用Backbone大约一天,所以我肯定我错过了一些基本的东西.这是我正在使用的jsfiddle:http: //jsfiddle.net/siyegen/e7sNN/3/
(function($) {
var GridView = Backbone.View.extend({
tagName: 'div',
className: 'grid-view',
initialize: function() {
_.bindAll(this, 'render', 'okay');
},
events: {
'click .grid-view': 'okay'
},
okay: function() {
alert('moo');
},
render: function() {
$(this.el).text('Some Cow');
return this;
}
});
var AppView = Backbone.View.extend({
el: $('body'),
initialize: function() {
_.bindAll(this, 'render', 'buildGrid');
this.render();
},
events: {
'click button#buildGrid': 'buildGrid'
},
render: function() {
$(this.el).append($('<div>').addClass('gridApp'));
$(this.el).append('<button id="buildGrid">Build</button>');
},
buildGrid: function() {
var gridView = new GridView();
this.$('.gridApp').html(gridView.render().el);
}
});
var …Run Code Online (Sandbox Code Playgroud) 我正在将我的骨干版本从0.9.2更新到1.0但我遇到了一个问题.
模型未正确更新.它有延迟.以前我的代码完美无缺:
this.model({ attrib: true},{silent:true});
Run Code Online (Sandbox Code Playgroud)
但更新后我删除了{silent:true},一切都很完美.模型正确更新.
我在Backbonejs.org上读过类似的东西
在变化时传递{silent:true}将不再延迟个别"change:attr"事件,而是完全沉默.
我完全不明白这个陈述的含义.
我正在尝试将项添加到当前数组.
var arrayValues = new Array();
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues = document.getElementsByTagName('a');
arrayValues.push("Value 3");
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我得到一个错误,我得到超值集合,当我尝试添加它抛出的新项目后,我得到值1和值2错误:对象不支持此属性或方法,这是推送方法.
收集超链接后,数组发生了什么?如何添加新项目?
backbone.js ×6
javascript ×6
jquery ×3
ajax ×1
array-push ×1
arrays ×1
clearfix ×1
css ×1
dom ×1
events ×1
html ×1
jsonp ×1
nested ×1
synchronous ×1