2016-03-18 14 views
0

我以前有一個javascript函數onclick =「submitDynamicSku()」,但我們最近開始轉換到Angular使用控制器來構建和我想能夠通過此功能,因爲它是我的重複的一部分。在角度ng-repeat中使用現有的JS函數

例子:

onclick="submitDynamicSku('x', document.getElementById('y').value, false, true);" 

我想嘗試:

onclick="submitDynamicSku(product.sku, document.getElementById('{{ product.id').value, false, true);" 

目前代碼:

$scope.submitSku = function(sku,id,false,true) { 
    submitDynamicSku(sku, document.getElementById(id).value, false, true); 

    function submitDynamicSku(sku, cnt, recurringOrder, viewCart) { 
    jQuery("#dynamicAsstName").val(""); 
    jQuery("#dynamicSku").val(sku); 
    jQuery("#dynamicSkuCount").val(cnt); 
    jQuery("#setRecurringOrder").val(recurringOrder); 
    jQuery("#viewCart").val(viewCart); 
    if (viewCart == false) { 
     jQuery("form[name='dynamic_add_to_cart_form']") 
      .submit(function() { 
       this.action = ""; 
       return true; 
      }); 
    } 
    jQuery("form[name='dynamic_add_to_cart_form']").submit();  
} 
    } 


<%--Angular Block--%> 
       <li ng-repeat="product in products"> 
        <div class="prod-img "> 
         <img ng-src="{{ product.imagePath }}" alt="{{ product.imageAlt }}" ng-class="{{ product.selector }}" /> 
        </div> 
        <div class="prod-info"> 

         <h2>{{ product.name}}</h2> 
         <h3>{{ product.price }}</h3> 
         <p>{{ product.description }} </p> 

         <a class="fancybox" href="#prodDesc-{{product.id}}">More Information &#187;</a> 
         <div class="prod-cart"> 
          <span class="qty-amt">QTY: <input value="1" id="{{ product.id }}" /> BOX</span> 

          <button href="javascript:void(0);" ng-click="submitSku(product.sku,product.id,false, true)">Add to Cart</button> 

         </div> 

        </div> 

       </li> 
+0

你想要的結果是什麼? –

+0

基本上有一個

+0

請分享您的html和控制器腳本 –

回答

1

創建功能控制器裏面是這樣的:

$scope.submitDynamicSku = function(pID){ 
    var elm = document.getElementById(pID); 
    .... 
} 

然後在HTML使用NG-點擊:(假設你使用的產品NG-重複)

ng-click="submitDynamicSku(product.id)" 
+0

我做到了這一點,但沒有奏效。 納克單擊= 「submitDynamicSku()」 $ scope.submitDynamicSku =函數(){ \t \t \t \t submitDynamicSku( '{{product.sku}}',的document.getElementById('{{product.id}} ').value,false,true); \t \t \t \t \t \t \t \t \t \t \t \t \t} –

+0

嘗試先通過你需要的所有數據(product.id product.sku)到$範圍功能NG點擊=「submitDynamicSku(... 。,product.id,....),然後在$ scope函數中,使用submitDynamicSku(... product.id ....)調用你現有的函數 – nlgn

1

假設你有適用於格

HTML NG-重複

<div ng-repeat="product in products "> 
    <button ng-click="submitDynamicSku(product.sku,product.id,false, true)">{{product}}"</button> 
    </div> 

控制器:

.controller('products', ['$scope', function($scope) { 
    $scope.products=[]; 
    $scope.submitDynamicSku = function(sku,id,false,true) { 
     ....... 
    } 

}]);

+0

我把我的javascript函數放在$ scope.submitDynamicSku中,現在它不會填充ng-repeat –

+0

我能夠使用這個最新的bu來工作我不得不從$ sco中刪除'false','true' pe.submitDynamicSku功能。 –

0
/* Inside the Controller */ 
$scope.submitSku = function(sku,id) { 
    submitDynamicSku(sku, id, false, true); 
}; 

/* HTML */ 
<a ng-click="submitSku(product.sku, product.id);">...</a>