当第三方库更新输入时,AngularJS 数据绑定不起作用



表单使用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也是如此。

希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新