表单使用jquery。Placepicker从谷歌地图上获取地址和ng-bs3-datepicker设置日期。我发现数据没有在控制器的作用域中更新。如何手动触发这些字段的更新?
<div class="form-group">
<input class="form-control" id="placepicker" name="address" ng-model="customer.address" data-latitude-input="#lat" data-longitude-input="#long" data-map-container-id="map-container" />
<p class="address-indicator" id="map-address"></p>
<input hidden id="lat" ng-model="customer.geo.latitude" />
<input hidden id="long" ng-model="customer.geo.longitude" />
<div id="map-container" class="collapse">
<div class="placepicker-map thumbnail"></div>
</div>
</div>
<div class="form-group">
<select class="form-control" name="account_type" ng-model="customer.account_type">
<option value="" disabled selected>Type de Compte</option>
<option value="INTERCO">Interco</option>
<option value="INTERNET">Internet</option>
</select>
</div>
<div class="form-group">
<ng-bs3-datepicker ng-model="customer.date_subscription" language="fr-ca" date-format="DD-MM-YYYY">
<!--<input class="form-control" placeholder="Place a datepicker!" name="date_subscription" ng-model="customer.date_subscription" />-->
</div>
如果看不到你的控制器代码,但是您可以尝试如下操作:
//Watch for Picker changes
$scope.$watch('customer.date_subscription', function(newValue, oldValue) {
// Run your functions after the Picker is updated
// Then refresh the $scope
$scope.$apply();
}, false);
请注意,$scope.$watch
的回调函数允许您在需要时访问Picker的新值和旧值。
最后一个参数(在示例中设置为false)允许您仅在新旧值不同时应用回调函数。如果将其设置为true,则每次都调用回调,即使newValue === oldValue
也是如此。
希望这对你有帮助。