我相信这是异步的问题,但我不知道解决方案.
PagesController.buy = function() {
var table="";
Selling.find({}, function(err, res) {
for (var i in res) {
console.log(res[i].addr);
table = table + "res[i].addr";
}
});
this.table = table;
console.log(table);
this.render();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,this.table=table如果我尝试在函数外部访问它,则返回undefined,我无法弄清楚如何在页面上显示表格.
我有一个问题,我正在努力.我想href="/jobs/emp/del/?id={{ job.pk }}"在确认后重定向到链接.我在用bootboxjs
{% for job in jobs %}
<a class="btn deleteJob" href="/jobs/emp/del/?id={{ job.pk }}"</a>
{% for job in jobs %}
Run Code Online (Sandbox Code Playgroud)
如何在执行链接之前要求确认/jobs/emp/del/?id={{ job.pk }}?
我试过了:
<a class="btn deleteJob"><span style="display:none">/jobs/emp/del/?id={{ job.pk }}</span>
<i class="icon-trash"></i></a>
<script src="/static/js/bootbox.js" type="text/javascript"></script>
<script>
$('.deleteJob').click(function(){
bootbox.confirm("Are you Sure want to delete!", function (x) {
if (x){
var link= $(this).find( $spans ).text();
document.location.href='/'+link+'/';}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
在一个大的for循环中,但它不起作用!?
在下面的代码中,有没有handleClick()比从全局实例中引用对象实例更好的方法呢?
var Widget = function() {
this.property = 'value';
this.bindEvents();
}
Widget.prototype = {
bindEvents: function() {
$('button').on('click', this.handleClick);
},
handleClick: function() {
var self = window.Widget;
console.log(self.property);
}
}
window.Widget = new Widget();
Run Code Online (Sandbox Code Playgroud)
这个问题问的是同一件事,(不可接受的)答案是将回调传递给$.on()并从那里调用处理程序,将实例作为参数传递如下:
bindEvents: function() {
var self = this;
$('button').on('click', function() {
self.handleClick.apply(self);
});
}
Run Code Online (Sandbox Code Playgroud)
这种传递实例的技术真的是正确的方法吗?或者,除了我已经展示的两种方法之外,还有没有其他首选的方法?
我正在尝试创建一个循环来创建许多函数,以便当用户单击拇指向上按钮时,它会运行正确的.php文档.当我移除循环并且只给出var ia特定数字时,它工作得很好但是当我尝试将其变成循环时,在警报(i)我在第一个循环上得到10.
var i=1;
while ( ++i < 10 ) {
$('#thumbup' + i).click(function() {
var userid = $('#theuser' + i).text();
var url = "_thumbup.php?userid=" + userid;
//alert(url);
$('#thumbup' + i).hide();
$('#thumbdown' + i).hide();
$("#toggle").css("display","block");
alert(i); // Give me 10 on first loop?!?
// get the URL
http = new XMLHttpRequest();
http.open("GET", url, true);
http.send(null);
// prevent form from submitting
return false;
});
}
Run Code Online (Sandbox Code Playgroud) for (i = 1; i <= 6; i++) {
$.post("ajax.php", {param: i}, function (response) {
console.log(i);
});
}
Run Code Online (Sandbox Code Playgroud)
如何在$.post完整函数中获得正确的i变量,我可以将变量传递给它吗?
当执行以下代码时,我在第一个循环完成时得到了我所期望的结果(从 0 到 9 的序列)。但是当第二个循环完成时,结果不是我所期望的(我期望与第一个循环中的结果相同,但它只打印“10”):
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go func(j int) {
defer wg.Done()
fmt.Println(j)
}(i)
}
wg.Wait()
fmt.Println("done first")
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
fmt.Println(i)
}()
}
wg.Wait()
fmt.Println("done second")
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
1
2
3
4
5
6
7
8
9
done first
10
10
10
10
10 …Run Code Online (Sandbox Code Playgroud) 我需要创建一个函数生成器,迭代无限序列,如斐波那契序列.它应该在调用时返回序列中的下一个值.我得到了一个函数原型:
function genfib() {
return function fib() {
}
}
Run Code Online (Sandbox Code Playgroud)
它应该像这样使用:
var fib = genfib();
fib(); // -> returns 0
fib(); // -> returns 1
fib(); // -> returns 1
fib(); // -> returns 2
Run Code Online (Sandbox Code Playgroud)
我很困惑每次打电话时都在执行什么fib().我试着做点什么
function genfib() {
var count = 1;
if (count === 1) {
count++;
yield 0;
}
else if (count === 2) {
count++;
yield 1;
}
var a = 0;
var b = 1;
return function fib() {
while(1) {
count = …Run Code Online (Sandbox Code Playgroud) 我看到这么多功能:
form.prototype.smokerDisabled = function(){
return function(age) {
return age>=15 ? 'disabled="disabled"' : '';
};
};
Run Code Online (Sandbox Code Playgroud)
将实际代码保存在另一个函数中并使其恢复的用途是什么.相反它本来写的:
form.prototype.smokerDisabled = function(age){
return age>=15 ? 'disabled="disabled"' : '';
};
Run Code Online (Sandbox Code Playgroud)
请告诉我第一种方法的区别和用法.谢谢.
我有一个JavaScript数组对象.像这样的东西:
var people = [
{ id:1, firstName: 'Joe', lastName: 'Smith' },
{ id:2, firstName: 'Bill', lastName: 'Smith' }
];
Run Code Online (Sandbox Code Playgroud)
我正在通过人们进行迭代forEach.这是我的代码:
function doSomething() {
people.forEach(function(person, self) {
self.helpPerson(person);
}, this);
}
function helpPerson(person) {
alert('Welcome ' + person.firstName);
}
Run Code Online (Sandbox Code Playgroud)
我试图helpPerson从forEach循环内调用.但是,当我尝试调用它时,我收到一条错误消息:
TypeError: self.helpPerson is not a function
Run Code Online (Sandbox Code Playgroud)
如果我添加console.log(self);,"0"将打印到控制台窗口.这意味着我没有正确传递我的参数.或者,我误解了闭包(就在我认为我完全理解它的时候:)).
那么,为什么不self退出呢?
我正在尝试传递一个参数以通过单击多边形来绑定它,我有以下内容:
var mapLayer = new L.TopoJSON(jsonMap, {style: style, onEachFeature: onEachFeature.bind(null,null,selectionManager), pane:'borders'}).addTo(this.map);
function onEachFeature(feature, layer, selectionManager) {
console.log(selectionManager)
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
click: dataFilter.bind(null,ID)
});
}
function dataFilter(selectionManager,e){
var layer = e.target;
var zoneName = layer.feature.properties.Index;
console.log(zoneName)
console.log(selectionManager);
}
Run Code Online (Sandbox Code Playgroud)
所以我的目标是读取 dataFilter 中的一个参数(在这种情况下是 selectionManager)
javascript ×6
jquery ×5
loops ×2
closures ×1
concurrency ×1
django ×1
generator ×1
go ×1
html ×1
leaflet ×1
locomotivejs ×1
mongoose ×1
node.js ×1
php ×1
typescript ×1
while-loop ×1