【问题标题】:Angularjs passing parameter values in ng-click functionAngularjs在ng-click函数中传递参数值
【发布时间】:2014-05-22 22:05:54
【问题描述】:

我有一个 Angular 应用程序,其中我有一个定义为 sumCompletedCredits 的自定义过滤器。这是调用的html:

{% if node.is_leaf_node %}
     <span class="badge badge-success" 
        ng-bind="mpttdetails | filter:{category.id:{{node.id}}} | sumCompletedCredits">
    </span>

    <div class="row">
        <button class="btn btn-default btn-sm pull-right" 
            ng-click="open({{node.id}}, {{node.min_credit}})">Add Course <span class="glyphicon glyphicon-plus"></span>
        </button>
    </div>
{%endif%}

这是自定义过滤器定义:

app.filter('sumCompletedCredits', function () {
    return function (mpttdetails) {
        if(typeof mpttdetails === 'undefined'){
                return;
        }
        else {
            var sum = 0;
            mpttdetails.forEach(function (detail) {
                sum += detail.student_academic_credit.credit;
            });
            return sum;
         }
        };
});

这是我想要实现的:我想在按钮的 ng-click() 函数中传递第三个参数,其中参数将是来自上述范围的值,如下所示:

ng-click="open({{node.id}}, {{node.min_credit}}, *{{{this content will be the value in the badge class from the custom filter}}}*)"

所以基本上我正在尝试发送将在按钮之前显示在跨度徽章中的值并将该值作为第三个参数发送。我如何发送第三个详细信息?

【问题讨论】:

  • 你试过把相同的代码/过滤器放在函数中吗?
  • 是的,我试过了,但是违反了 ng-click 定义,它给了我一个错误
  • 您可以在控制器/指令中导入过滤器,然后在您的打开函数中调用它吗? $filter('filtername')(arg);

标签: javascript angularjs


【解决方案1】:

您可以将过滤结果分配给范围属性并在您的函数中引用该属性:

<span ...
        ng-bind="summed=(mpttdetails | filter:{category.id:{{node.id}}} | 
                                       sumCompletedCredits)">
</span>
...
<button ...
        ng-click="open({{node.id}}, {{node.min_credit}}, summed)">
    ...
</button>

【讨论】:

  • 我们可以像这样分配它们吗,因为我的按钮和跨度处于循环中,并且每次运行后都会更新值? ng-bind="summed[{{node.id}}] = (mpttdeta...)"
  • 当然,但在这种情况下,您需要在控制器中初始化 summed。例如。有这样一行:$scope.summed = [];
  • 嗨,你能帮我吗? stackoverflow.com/questions/24247130/…
猜你喜欢
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2017-06-20
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多