AngularJs 中ngModel綁定HTML5 date數據同步問題


以下代碼例子中,直接將date類型的input標簽與ng-model對應的變量綁定,會出現內存數據和頁面數據不一致的問題。雖然AngularJS是雙向數據綁定,但是如果用下面的方法,在頁面更新date的內容時,內存中的$scope.testDate不會改變;在內存中更新$scope.testDate,頁面上的日期也不會改變。

<input type="date" name="testDate" ng-model="testDate" placeholder="yyyy-MM-dd"/>

原因是AngularJs 的ngModel是引用綁定,而不是值綁定,那就意味着如果ngModel對應的引用對象沒有變,但是引用對象的值發生了改變的話,Angular是檢測不到變化的,因此不會做雙向更新。

對應的糾正方法就是,將日期作為變量的屬性綁定到date類型的input標簽,如下:

$scope.testDate = {
    value: new Date();
}
<input type="date" name="testDate" ng-model="testDate.value" placeholder="yyyy-MM-dd"/>


免責聲明!

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



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