ng-model không chạy ở trong ng-if

0 k thích

Mình có đoạn code ví dụ như sau:

<div ng-app >
    <div ng-controller="main">

        Test A: {{testa}}<br />
        Test B: {{testb}}<br />
        Test C: {{testc}}<br />

        <div>
            testa (without ng-if): <input type="checkbox" ng-model="testa" />
        </div>
        <div ng-if="!testa">
            testb (with ng-if): <input type="checkbox" ng-model="testb" />
        </div>
        <div ng-if="!someothervar">
            testc (with ng-if): <input type="checkbox" ng-model="testc" />
        </div>

    </div>
</div>

Không biết có phải là bug hay do mình nhầm gì không nhưng có vẻ ng-model trong ng-if không nhận giá trị

avatar đã hỏi ngày 14 tháng 9 bởi anhweasley (1,160 điểm)  

3 Trả lời

0 k thích
 
Hay nhất

Bạn có thể dùng $parent để trỏ đến scope cha sinh ra scope hiện tại

<input type="checkbox" ng-model="$parent.testb" />
avatar trả lời ngày 17 tháng 9 bởi neo.ptit (1,880 điểm)  
đã được chọn ngày 17 tháng 9 bởi admin
0 k thích

ng-if là một directive nên nó có $scope riêng của nó. testbtestc là biến riêng của nó nên bạn sẽ không thấy thay đổi gì ở đoạn text. Xem ví dụ sau

Nếu muốn sửa biến của scope bên ngoài thì cần gán cho nó thuộc tính của một object như thẻ div cuối ở ví dụ trên

avatar trả lời ngày 17 tháng 9 bởi giangcoffee (550 điểm)  
0 k thích

Bạn cũng có thể dùng ng-hide vì nó không tạo ra child scope

avatar trả lời ngày 17 tháng 9 bởi admin (2,590 điểm)  
...