1

我使用帶有Ionic的angular-google-places-autocomplete(https://github.com/kuhnza/angular-google-places-autocomplete),但在使用此僞指令時捕獲選定選項時出現問題。使用角度谷歌地點自動完成捕獲對模型的更改

我有指令設置是這樣的:

<!-- template --> 
<input type="text" placeholder="Place search" g-places-autocomplete ng-model="locationSearchResult"/> 

<h5>Result</h5> 
<pre ng-bind="locationSearchResult | json"></pre> 

我的控制器代碼設置爲監視更改到locationSearchResult模式,如果它更改爲新位置保存到本地存儲:

// Controller 
$scope.locationSearchResult = {};  

$scope.$watch('locationSearchResult', function(newVal, oldVal) { 
    if (angular.equals(newVal, oldVal)) { return; } 
    $scope.$storage.loc = newVal; 
    $state.go('new-page'); 

});

當使用自動填充時,它看起來像預期的那樣工作 - 我得到一個預測列表,並從預測列表中選擇一個預測,用選定位置的名稱更新文本輸入,並選擇所選JSON數據將結果顯示在結果標題下。但是,這種改變似乎沒有被控制器中的$ scope。watch監視到。

因此,我似乎無法捕獲搜索結果數據並對其執行任何操作 - 例如將其添加到用戶會話中。

也許我只是去錯誤的方式(雖然我用ngAutocomplete相同的方法,它工作正常)。

回答

7

使用在控制器中發出的事件。

$scope.$on('g-places-autocomplete:select', function (event, param) { 
    console.log(event); 
    console.log(param); 
}); 
+0

謝謝伊萬。我不再使用這個指令,而是開始使用https://github.com/israelidanny/ion-google-place的受入侵版本 儘管如此,對於使用此指令的其他人來說,還是有好處。 – onblur 2015-01-16 21:05:18

+0

@onblur - 你能找到商家信息嗎?我可以獲得城市和地址,但不是企業。如果是的話,你能否提供一個代碼樣本? – singh 2015-12-12 04:38:42

+0

嗨@JotiBasi - 是的,我能夠獲得商家信息。請參閱此處的討論:https://github.com/israelidanny/ion-google-place/issues/3以及此PR中的代碼:https://github.com/israelidanny/ion-google-place/pull/15 – onblur 2015-12-16 08:11:09