AngularJS ng-click创建子范围,但在后续ng-click后推送到主范围

时间:2014-07-08 08:02:14

标签: javascript angularjs

当我使用我的第一次ng-click时,它会创建一个子范围,但不会将其推送到父范围。
后来当我再次使用ng-click(一个非常简单的看似无关的函数)时,它似乎跳进主范围并执行我之前的请求。

有什么想法吗?我很难过,但是假设它与听众或观看有关。

首先点击:

ng-click="cart.addItem(product.sku, product.name, product.price, 1)

 shoppingCart.prototype.addItem = function (sku, name, price, quantity) {

        this.item = [];  
        this.item = {
          sku : sku,
          name :name,
          price : price,
          quantity:quantity

        };
        this.items.push(this.item);


    };

第二次点击:

ng-click="upload = true"

谢谢,

威尔

2 个答案:

答案 0 :(得分:1)

你应该通过Angular教程,你似乎有点困惑:https://docs.angularjs.org/tutorial/step_00

无论如何,您的代码和一些模糊的部分存在一些问题

我不知道这个shoppingCart是什么,但作为一般规则,你肯定可以替代这个

 shoppingCart.prototype.addItem = function (...)

 shoppingCart.addItem = function (...)

然后,在您的代码中,您有以下代码段:

    // everytime you run this function, you substitute whatever 
    // item was with an empty array
    this.item = [];  

    // then you substitute the empty array with an object (?)
    this.item = {
      sku : sku,
      name :name,
      price : price,
      quantity:quantity

    };

    // then you try to push your object in a non-existent array, 
    // or in the array you just overwrote (if you meant 'item' instead of 'items')...
    this.items.push(this.item); 

此代码无法使用,因此如果您在$scope中看到某些更改,则应该是出于其他原因。

答案 1 :(得分:0)

也许你需要创建一个指令,绑定一个click参数把它放在DIV元素上。 This user did a similar code (by Jerrad)