angularjs input使用ng-model雙向綁定無效bug解決


解決辦法

A.將綁定的變量寫成對象的形式

$scope.inputText = {value:"測試"}

頁面綁定

<input type="type" ng-model="inputText.value"/>

 

B.另一種解決辦法: 把ng-if 改為 ng-show 就可以了

 

ng-model 在 ng-if 里面無效

ng-if指令的功能與ng-show指令相似,都用於控制元素的顯示與隱藏,但兩者又有區別,ng-if指令會移除DOM原有的元素,而ng-show指令只是將元素的”display”屬性值設置為”none”。因此,在使用時必須根據實際的需要進行選擇性使用。

 ng-if指令會創建一個子級作用域,因此,如果在ng-if指令中添加了元素,並向元素屬性增加ng-model指令,那么ng-model指令對應的作用域屬於子級作用域,而並非控制器注入的$scope作用域對象,這點在進行雙向數據綁定時,需要引起注意。

 為什么?

ng-if里面會生成一個子域,想要ng-model生效,需要在$scope創建一個子對象,才行,如$scope.obj,再將ng-model綁定到obj

 解決問題:

1.使用ng-show(或ng-hide)可以間接解決這個問題。

2.使用$scope創建一個子對象

$scope.a = {num: '1'};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM