2017-04-14 86 views
1

在多個複選框的列表中,我有一個「其他」複選框,用戶可以在其中插入一些文本。這被定義爲:選擇md-checkbox內的輸入元素將切換複選框

<md-checkbox class="md-checkbox-interactive" ng-model="$ctrl.someVar"> 
    <input type="text" placeholder="Placeholder" ng-model="$ctrl.someVarText"> 
</md-checkbox> 

md-checkbox-interactive用於允許input元件上的指針事件:

md-checkbox.md-checkbox-interactive { 
    .md-label { 
    input { 
     pointer-events: all; 
    } 
    } 
} 

這是從下面的答案採取關於單選按鈕類似的問題:https://stackoverflow.com/a/33304119/2051151

但是,無論何時我選擇輸入元素,該複選框都會被切換。我在這裏錯過了什麼?

回答

0

後有點搜索,我發現我需要添加input元以下的:

ng-click="$ctrl.onClickInput($event)" 

其中函數定義爲:

this.onClickInput = function (event) 
{ 
    // Prevent the click event to propagate 
    event.stopPropagation(); 

    // But toggle the checkbox if necessary 
    if (!vm.someVar) vm.someVar = true; 
} 

這將防止不必要的切換的複選框。