javascript - 在 Angular ng-repeat 中使用现有的 JS 函数

标签 javascript angularjs

我以前有一个 javascript 函数 onclick="submitDynamicSku()"但我们最近开始转换为 Angular 以使用 Controller 进行构建,我希望能够传递此函数,因为它是我的函数的一部分ng-重复。

示例:

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>

最佳答案

假设您已在 div 上应用ng-repeat

HTML:

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

Controller :

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

}]);

关于javascript - 在 Angular ng-repeat 中使用现有的 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091079/

相关文章:

javascript - THREE.js 文本未显示且没有任何错误

angularjs - 视频上的 Ng-Src 更改不起作用

javascript - 将字符串数组绑定(bind)到导航栏

javascript - ng-include 不包含局部 View

dynamic - 在页面内动态加载 AngularJS 模板

javascript - 如何将逻辑语句引入 XML View 或如何更改表中某些项目的展示方式

javascript - 用于设置主页功能的通用 javascript

javascript - Select2 TypeError : data. 结果未定义

javascript - angularjs:只允许在文本框中输入数字

javascript - 为什么我在 React 应用程序中失去了登录信息?