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

Angularjs setting filter variable dynamically via infoWindow

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

ng-model="queryLoc.citta"

在一切之前,我实例化变量

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

现在我想通过单击 google 地图的信息窗口内的按钮来设置 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'
}

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

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

已解决:

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

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

对此:

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