我有一個角度$範圍變量,通過窗口事件實例化。 $ scope變量正確顯示給用戶,但更新不是通過ng-model設置的。奇怪的是,ng-change具有可用於手動設置範圍變量的正確值。
我真的不明白爲什麼會發生這種情況。
事件處理程序:
document.addEventListener('updateSearchBar', handleUpdate);
function handleUpdate(eventData) {
$scope.benefitsFromDate = eventData.detail.fromDate;
$scope.$apply();
}
前端:
<input
type="date"
name="fromDate"
ng-change="updateBenefitsFromDate(benefitsFromDate)"
ng-model="benefitsFromDate"
/>
<input
type="button"
value="Search"
class="btn btn-default"
ng-click="searchDocuments()"
ng-disabled="isSearchingDocuments"
/>
角片斷:
$scope.updateBenefitsFromDate = function(change) {
console.log($scope.benefitsFromDate); //still has old value
console.log(change); //has updated value when param is the $scope variable
//$scope.benefitsFromDate = change; //only way to update
};
$scope.searchDocuments = function() {
//ng-model never updates the variable when the value is changed and uses the instantiated value
console.log($scope.benefitsFromDate);
};
爲什麼不NG-模型反映這種變化,但通過$範圍。 ng-change函數中的benefitsFromDate具有更新的值嗎?