我需要在ng-click
上触发自定义指令/ jQuery插件并将参数传递给它,然后重新加载该页面,以便进行参数的值。因此,在重新加载而不是我的Google地图中有3个结果时,应该会显示50个结果。
我已经完成了关于ng-click的触发指令的大量阅读以及将参数传递给指令(特别是this question和this question以及this question)但我是对AngularJS来说相当新,所以我对Angular的所有优点以及如何正确使用它仍然有点天真...
我为我正在创建的Google Maps API应用创建了一个jQuery插件。该应用程序也在使用AngularJS。该插件会创建一个地图,并向用户plugin code here显示3个位置。在地图下我有一个表中的3个位置的列表。我还有一个按钮,显示更多结果,它应该返回50个以上的位置。
最好的方法是什么......
将新参数传递给我的插件/指令?目前在页面加载时,我加载指令并通过<div tfinder-map="{queryLimit: 3}">
触发插件。理想情况下,当我点击更多结果按钮时,我想通过50。
在点击更多结果的同时将param传递给我的指令/插件,我希望它实际上触发指令并重新加载页面,以便显示50个结果,而不是只有3。
在阅读其他问题之后,我认为将一个参数传递给我的指令将会是这样的(尽管我确定语法错误):
ng-click="tfinder-map(queryLimit: 50)"
为了能够在页面重新加载时保持该值,我能想到的唯一方法是通过URL中的查询字符串参数。
我也对 $ route.reload()进行了一些阅读,这听起来很有意思,我只是不知道用params重新加载来实现这个的最好方法。
我当前的指令如下:
directive('tfinderMap', function() {
return {
restrict: 'A',
link: function(scope, elm, attrs) {
$(elm).tfindermap(scope.$eval(attrs.tfinderMap));
}
};
})
在jQuery中,它是
$('#foo').tfindermap({queryLimit: 3})
可以查看实际的jQuery插件 here on Github
此外,如果它有助于可视化,那么这里是用户界面
点击更多结果按钮会显示50个结果而不是3