簡體   English   中英

在指令模板中更改值並注意更改

[英]Change value inside directive template and watch for changes

在我的指令模板內部,我ng-disabled ,當validationScope更改時,我需要對其進行更改。

這是我的指令:

var addComment = {
    link: link,
    restrict: "E",
    replace: true,
    scope:{
        validationScope:'@'
    },
    template: '<button type="submit" ng-disabled="validationScope" class="btn btn-default pull-right">Send</button>'
};

在我的html中,我這樣輸入:

<mydirective validation-scope="<%mainComment.mainTxt.$invalid%>"></mydirective>

即使mainComment.mainTxt.$invalid%已更改,我的代碼也被ng-disabled問題始終會true ...

另外,如果我在指令模板中這樣放置: {{validationScope}}我可以看到值更改為:true / false ...

這樣做現在可能會起作用:

template:'<button type="submit" ng-disabled="{{validationScope}}" class="btn btn-default pull-right">Send</button>'

我認為這是Angular錯誤...

Probmel為<%mainComment.mainTxt.$invalid%> mainComment.mainTxt <%mainComment.mainTxt.$invalid%>將字符串'true'/'false'返回給指令...

我這樣解決:

在我添加的鏈接中:

scope.$watch('validationScope',function()
{
    if(scope.validationScope === 'true')
    {
        scope.validationScope = true;
    }
    else if(scope.validationScope === 'false')
    {
        scope.validationScope = false;
    }
});

我們還需要添加以下規則: transclude: true以便我們可以從外部更改范圍。

暫無
暫無

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

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