簡體   English   中英

將條件函數參數('&')傳遞到自定義角度指令

[英]Passing conditional function argument ('&') to a custom angular directive

我有一個自定義的angular指令,它接受兩個函數參數,addElement和removeElement:

.directive('myDirective', ['$window', function () {
        return {
            restrict: 'E',
            replace: true,
            scope: {
                addElement: '&',
                removeElement: '&'
            },
            templateUrl: window.root + 'myDirectiveHtml.html'
        };
    }])

我無法弄清楚如何在指令外部有條件地設置這兩個屬性,以及如何在指令內部有條件地使用這兩個函數參數。 我希望能夠將一個函數或'null'傳遞給指令,並在此基礎上編寫內部適當的邏輯。

目前,我的指令中還有兩個參數(上面的代碼中未列出),enableAdd和enableRemove。 我想刪除這兩個屬性,並根據上述邏輯確定它們。

當前,從外部以如下方式實例化指令:

<myDirective add-element="addElementFunc()"
             remove-element="removeElement()"
             enable-remove="{{ 1===1 ? 'true' : 'false' }}"
             enable-add="{{ 1===1 ? 'true' : 'false' }}" />

當前,在我的指令中,我使用如下的enable / disable屬性:

<div ng-show="enableAdd" ng-click="addElement()">Add</div>
<div ng-show="enableRemove" ng-click="removeElement()">Add</div>

因此,基本上我的問題是如何刪除enableAdd / enableRemove屬性,並根據addElement / removeElement是null還是函數來對邏輯進行編碼。

您可以執行以下操作,在父控制器中創建兩個布爾值,然后由它們將功能傳遞給指令。 例如:

父控制器:

$scope.triggerAdd = false;
$scope.triggerRmove = true;

父html:

  <myDirective add-element="triggerAdd ? addElementFunc() : false"
                 remove-element="triggerRmove ? removeElement(): false"
                 enable-remove="{{ 1===1 ? 'true' : 'false' }}"
                 enable-add="{{ 1===1 ? 'true' : 'false' }}" >
    </myDirective>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM