簡體   English   中英

通過javascript選擇輸入復選框時未觸發ng-show

[英]ng-show not triggered when input checkbox selected via javascript

我有一個html頁面,單擊復選框會導致頁面的新部分變為可見。 HTML看起來像這樣:

            <input id="formcheck" ng-model="collapseform" type="checkbox">Fill in the Test Form         
            <div id="mainformdiv" class="wizard-div" ng-show="collapseform">                
                    <div>                           
                        <div class="main-block">    
                                ...and so on
                        </div>
                    </div>
            </div>

這部分工作正常-默認情況下,該頁面的一部分是隱藏的,當我選中該復選框時,將顯示頁面的其余部分。 當我取消選擇它時,頁面的其余部分再次被隱藏。

在同一頁面的下一層,有一個表,當您在該表中選擇一個節點時,它會調用一個控制器函數,該控制器函數會導致一些內部值的設置-該部分也起作用,因此控制器似乎已正確設置,並且所有功能都可以調用。

我看到的問題是:除了設置內部值(它可以正確執行)之外,我還想向選擇表節點時被調用的控制器函數添加一些內容,而我希望它做的是),還請選中該復選框,並作為響應顯示頁面的隱藏部分。 我以為如果通過javascript選中了復選框即可完成此操作,因此我將其添加到了內部值設置功能中:

        if (document.getElementById("formcheck").checked == false) {
            document.getElementById("formcheck").checked = true;
        }

這種工作-調用該代碼段時,該復選框確實被選中,但是,與我用鼠標單擊該復選框不同,它似乎不會觸發ng-show,因此頁面的隱藏部分不可見。 為了完成這項工作,我還需要做其他事情嗎?

謝謝!

您應該能夠更改模型的值。 由於NgModel提供雙向綁定,因此它也會監視$scope變量。

例如做

$scope.collapseform = false

代替

if (document.getElementById("formcheck").checked == false) {
    document.getElementById("formcheck").checked = true;
}

暫無
暫無

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

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