我有一个ng-repeat,其中每个实例都包含ng-include
。像这样:
<li ng-repeat="item in items">
<div class="item-actions" ng-include="actionsTemplate"></div>
</li>
我现在希望能够通过点击相同范围内的按钮来设置和删除actionsTemplate
来源,如下所示:
<li ng-repeat="item in items">
<div class="item-actions" ng-include="actionsTemplate"></div>
<button ng-click="toggleActionsTemplate()">Toggle Actions</button>
</li>
因此,点击该按钮会触发一个功能toggleActionsTemplate()
,将actionsTemplate
来源设置为foo
,或者如果已将其设置为foo
,则将其设置为{{1删除模板。
我已经尝试过这样做,但无法弄清楚如何获取控制器函数来定位调用该函数的同一null
实例中的模板。
这是否可行,更重要的是,这是实现这种行为的好方法吗?
答案 0 :(得分:0)
这是一个掠夺者:http://plnkr.co/edit/4p56QeuqpMAH1yc0tbfy?p=preview
actionsTemplate
内的每个子范围初始化不同的ngRepeat
变量。ngInit
初始化范围变量。<li ng-repeat="item in items" ng-init="action = actionsTemplate">
<div class="item-actions" ng-include="action"></div>
<button ng-click="action = toggleAction(action)">Toggle Actions</button>
</li>
<强>控制器:强>
$scope.toggleAction= function(action){
return action === 'foo' ? null : 'foo';
}