无法在JS中的功能范围之外访问变量

mko

抱歉,这个noobie问题,但是我一直在搜索有关shadowing variable的所有现有答案,但仍然无法使我的代码正常工作

export default Ember.ArrayController.extend({
    actions: {
        generateInvoice: function() {
             var amount1; // declare a variable
             var amount2;
            this.store.find('product', 1).then(function(obj){
                amount1 = 100; //assign value to the amount variable
            });
            this.store.find('product', 2).then(function(obj){
                amount2 = 200; 
            });
            console.log(amount1); // undefined!
            console.log(amount2); // undefined!

            $.post('http://nzud.co.nz/invoice',{
                    foo1: amount1, //access variable amount ---doesn't work!!
                    foo2: amount2

                    } ).done(function(data){
                        alert("success!");
            })
        }
    }
});

我已经尝试了很多方法,但是仍然无法将模型记录属性存储到变量中并无法从$.post有效负载中访问

不要投票

要继续使用变量new值,您必须将代码放入promisse内then然后它将起作用:

export default Ember.ArrayController.extend({
    actions: {
        generateInvoice: function() {
            this.store.find('product', 1).then(function(obj){
                var amount = 100; //assign value to the amount variable

                $.post('http://nzud.co.nz/invoice',{
                    foo: amount
                }).done(function(data){
                    alert("success!");
                })
            });
        }
    }
});

发生这种情况是因为该方法find是异步的,因此您必须在回调函数(本例中为)中处理其结果then内的所有内容generateInvoice范围将(可能)在您之前调用find方法请求结束的,即使叫里面的第一种方法。

更新:

使用的这两种find方法product, 1我没有得到您的意思,但是:

  • 如果在发送给帖子的请求中有两个值,则应find()使用一次方法:

    this.store.find('product', 1).then(function(obj){
        var amount = 100; //assign value to the amount variable
    
        $.post('http://nzud.co.nz/invoice',{
            foo: amount,
            bar: another_value
        })
    });
    
  • 或者,如果必须调用两种不同的find方法,则必须将它们链接起来:

    this.store.find('product', 1).then(function(obj){
        var amount = 100; //assign value to the amount variable
    
        this.store.find('product', 1).then(function(obj){
            var another_amount = 100; //assign value to the amount variable
    
            $.post('http://nzud.co.nz/invoice',{
                foo: amount,
                bar: another_amount
            })
        });
    });
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在矩形请求之外访问范围变量

来自分类Dev

无法在矩形请求之外访问范围变量

来自分类Dev

在功能Swift之外访问变量

来自分类Dev

在其功能之外访问jQuery变量

来自分类Dev

无法在for循环之外访问变量

来自分类Dev

无法在for循环之外访问变量

来自分类Dev

无论如何要更改函数中全局变量的值并在js中的本地范围之外访问

来自分类Dev

在重复之外访问变量

来自分类Dev

在范围之外访问本地声明的结构

来自分类Dev

范围问题。在if语句之外访问对象

来自分类Dev

在if / else语句之外访问PHP变量

来自分类Dev

在循环之外访问所有FOR变量

来自分类Dev

如何在if语句之外访问变量

来自分类Dev

在if / else语句之外访问PHP变量

来自分类Dev

在循环JavaScript之外访问数组变量

来自分类Dev

在while循环之外访问变量

来自分类Dev

在分配的方法之外访问JavaScript变量

来自分类Dev

在给定函数之外访问变量

来自分类Dev

为什么不能在声明范围之外访问用new声明的变量?

来自分类Dev

我们如何在C语言范围之外访问自动和静态变量?

来自分类Dev

如何在类范围之外访问变量定义的浏览按钮类

来自分类Dev

无法在ValueChangeListener之外访问UIComponent值

来自分类Dev

无法访问功能中的jquery。“变量范围”问题?

来自分类Dev

Angular控制器的属性无法在其功能之外访问

来自分类Dev

为什么无法在其功能之外访问动态分配的数组?[C]

来自分类Dev

在Swift中,如何在其功能之外访问滑块的值?

来自分类Dev

如何在PHP中的for循环之外访问循环变量的值?

来自分类Dev

使用require在JavaScript中的匿名函数之外访问全局变量

来自分类Dev

如何在Django的Formclass之外访问forms.py中的会话变量

Related 相关文章

  1. 1

    无法在矩形请求之外访问范围变量

  2. 2

    无法在矩形请求之外访问范围变量

  3. 3

    在功能Swift之外访问变量

  4. 4

    在其功能之外访问jQuery变量

  5. 5

    无法在for循环之外访问变量

  6. 6

    无法在for循环之外访问变量

  7. 7

    无论如何要更改函数中全局变量的值并在js中的本地范围之外访问

  8. 8

    在重复之外访问变量

  9. 9

    在范围之外访问本地声明的结构

  10. 10

    范围问题。在if语句之外访问对象

  11. 11

    在if / else语句之外访问PHP变量

  12. 12

    在循环之外访问所有FOR变量

  13. 13

    如何在if语句之外访问变量

  14. 14

    在if / else语句之外访问PHP变量

  15. 15

    在循环JavaScript之外访问数组变量

  16. 16

    在while循环之外访问变量

  17. 17

    在分配的方法之外访问JavaScript变量

  18. 18

    在给定函数之外访问变量

  19. 19

    为什么不能在声明范围之外访问用new声明的变量?

  20. 20

    我们如何在C语言范围之外访问自动和静态变量?

  21. 21

    如何在类范围之外访问变量定义的浏览按钮类

  22. 22

    无法在ValueChangeListener之外访问UIComponent值

  23. 23

    无法访问功能中的jquery。“变量范围”问题?

  24. 24

    Angular控制器的属性无法在其功能之外访问

  25. 25

    为什么无法在其功能之外访问动态分配的数组?[C]

  26. 26

    在Swift中,如何在其功能之外访问滑块的值?

  27. 27

    如何在PHP中的for循环之外访问循环变量的值?

  28. 28

    使用require在JavaScript中的匿名函数之外访问全局变量

  29. 29

    如何在Django的Formclass之外访问forms.py中的会话变量

热门标签

归档