Angularjs通过infoWindow动态设置过滤器变量

时间:2015-01-15 08:33:27

标签: javascript angularjs google-maps google-maps-markers angularjs-ng-click

我有一个与角度列表交互的选择框,它可以正常工作。选择框处理'citta'字段,当我更改它的值时,列表被过滤。

ng-model="queryLoc.citta"

在所有事情之前,我是变量

$scope.queryLoc = { citta: ''};

现在我想通过点击谷歌地图的infoWindow内的按钮来设置queryLoc值。当我单击按钮时,我使用此代码调用函数'filtraLoc'

angular.element(document.getElementById('eventCont')).scope().filtraLoc(citta);

这就是filtraLoc正在执行的功能。

$scope.filtraLoc = function(city){
    $scope.queryLoc = {citta: city};
};

在我的json中,我有“citta”属性,你可以看到

{   
    immagine:'/upload/cms/770_x/Lonato(2).jpg',
    linkScheda: '/cms-01.00/articolo.asp?IDcms=77193&s=269',
    nome: 'MERCATO CONTADINO A LONATO DEL GARDA',
    citta: 'Lonato del Garda',
    data: 'OGNI SABATO MATTINA DALLE ORE 8 ALLE 13',
    categoria: '', 
    latitudine: '8', 
    longitudine: '82', 
    show: 'false'
}

但过滤器不起作用!我的想法也用完了,因为浏览器的控制台没有给我任何错误。

感谢您提供给我的任何帮助或提示。

1 个答案:

答案 0 :(得分:1)

解决了:

只需要使用$ digest并转换代码:

angular.element(document.getElementById('eventCont')).scope().filtraLoc(citta);

到此:

var tmp = angular.element(document.getElementById('eventCont'));
tmp.scope().queryLoc  = {citta: city};
tmp.scope().$digest();