如何在 ng-href 中使用 ng-click 传递参数?

How to pass parameter with ng-click in a ng-href?

实际上,我得到了一个产品列表,由于 ng-href 中带有 ng-click 的功能,我想在单击 ng-href 时传递当前产品 ID。

这是我的 html 文件:

<div class="agile_top_brands_grids" ng-model="products" ng-repeat="product in products">
  <div class="col-md-4 top_brand_left">
    <div class="hover14 column">
      <div class="agile_top_brand_left_grid">
        <div class="agile_top_brand_left_grid_pos">
          <img src="../../resources/images/offer.png" alt=" "
            class="img-responsive" />
        </div>
        <div class="agile_top_brand_left_grid1">
          <figure>
            <div class="snipcart-item block">
              <div class="snipcart-thumb">
                <a ng-href="/#/singleproduct"
                  ng-click="currentProductId(product.id)">
                  <img src="../../resources/images/hh4.png">
                </a>
                <p>{{product.name}}</p>
                <h4>{{product.price}}</h4>
              </div>
            </div>
          </figure>
        </div>
      </div>
    </div>
  </div>

然后我尝试像这样在我的控制器中获取 id :

$scope.currentProductId = function (productId) {
  console.log("Hello");
  console.log(productId)
}

但是$scope.currentProductID根本没有执行..

有什么想法吗?

你好有一些困惑,比如

<div class="agile_top_brands_grids" ng-model="products" ng-repeat="product in products">
                    <div class="col-md-4 top_brand_left">
                        <div class="hover14 column">
                            <div class="agile_top_brand_left_grid">
                                <div class="agile_top_brand_left_grid_pos">
                                    <img src="../../resources/images/offer.png" alt=" " class="img-responsive" />
                                </div>
                                <div class="agile_top_brand_left_grid1">
                                    <figure>
                                        <div class="snipcart-item block" >
                                            <div class="snipcart-thumb" >
                                                <a ng-href="/#/singleproduct" ng-click="currentProductId(product.id)"><img src="../../resources/images/hh4.png"></a>
                                                <p>{{product.name}}</p>
                                                <h4>{{product.price}}</h4>
                                            </div>
                                        </div>
                                    </figure>
                                </div>
                            </div>
                        </div>
                    </div>
  • 第一行你为什么使用 ng-model?
  • 如果您使用的是 ng-href="/#/singleproduct" 那么它会改变您的路线和控制器。这意味着您的函数“$scope.currentProductId”将不会执行。
  • 解决方案 1 是:要么你可以像

    那样在 href 中传递 id

    ng-href="/#/singleproduct"+product.id 并删除 ng-click 功能

  • 解决方案二:ng-href="#" 并使用ng-click 功能更改路由。