相关疑难解决方法(0)

NodeJS无法访问回调内的变量

我相信这是异步的问题,但我不知道解决方案.

    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,我无法弄清楚如何在页面上显示表格.

mongoose node.js locomotivejs

3
推荐指数
1
解决办法
3770
查看次数

我想在混淆后重定向到<a>上的链接?

我有一个问题,我正在努力.我想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循环中,但它不起作用!?

html django jquery loops

3
推荐指数
1
解决办法
3570
查看次数

如何从事件处理程序引用对象实例

在下面的代码中,有没有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)

这种传递实例的技术真的是正确的方法吗?或者,除了我已经展示的两种方法之外,还有没有其他首选的方法?

javascript jquery

3
推荐指数
1
解决办法
1667
查看次数

Jquery Loop无法正常工作?

我正在尝试创建一个循环来创建许多函数,以便当用户单击拇指向上按钮时,它会运行正确的.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)

javascript php jquery loops while-loop

3
推荐指数
1
解决办法
1679
查看次数

如何在jQuery中更正Ajax函数中的循环变量

for (i = 1; i <= 6; i++) {
    $.post("ajax.php", {param: i}, function (response) {
        console.log(i);
    });
}
Run Code Online (Sandbox Code Playgroud)

如何在$.post完整函数中获得正确的i变量,我可以将变量传递给它吗?

jquery

3
推荐指数
1
解决办法
568
查看次数

Go 循环中的函数闭包

当执行以下代码时,我在第一个循环完成时得到了我所期望的结果(从 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)

concurrency closures go

3
推荐指数
1
解决办法
737
查看次数

函数发生器javascript

我需要创建一个函数生成器,迭代无限序列,如斐波那契序列.它应该在调用时返回序列中的下一个值.我得到了一个函数原型:

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)

javascript generator

3
推荐指数
1
解决办法
1376
查看次数

javascript函数有什么用途来修复另一个函数

我看到这么多功能:

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 jquery

3
推荐指数
1
解决办法
98
查看次数

JavaScript - ForEach

我有一个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)

我试图helpPersonforEach循环内调用.但是,当我尝试调用它时,我收到一条错误消息:

TypeError: self.helpPerson is not a function
Run Code Online (Sandbox Code Playgroud)

如果我添加console.log(self);,"0"将打印到控制台窗口.这意味着我没有正确传递我的参数.或者,我误解了闭包(就在我认为我完全理解它的时候:)).

那么,为什么不self退出呢?

javascript

3
推荐指数
1
解决办法
1101
查看次数

将参数传递给 oneachfeature 传单

我正在尝试传递一个参数以通过单击多边形来绑定它,我有以下内容:

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 leaflet typescript

3
推荐指数
1
解决办法
1014
查看次数