【发布时间】: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