消防指令,刷新和&在ng-click上传递参数

时间:2014-04-20 17:11:22

标签: javascript jquery angularjs angularjs-directive angularjs-ng-click

tldr;

我需要在ng-click上触发自定义指令/ jQuery插件并将参数传递给它,然后重新加载该页面,以便进行参数的值。因此,在重新加载而不是我的Google地图中有3个结果时,应该会显示50个结果。


声明

我已经完成了关于ng-click的触发指令的大量阅读以及将参数传递给指令(特别是this questionthis question以及this question)但我是对AngularJS来说相当新,所以我对Angular的所有优点以及如何正确使用它仍然有点天真...

背景

我为我正在创建的Google Maps API应用创建了一个jQuery插件。该应用程序也在使用AngularJS。该插件会创建一个地图,并向用户plugin code here显示3个位置。在地图下我有一个表中的3个位置的列表。我还有一个按钮,显示更多结果,它应该返回50个以上的位置。

问题

最好的方法是什么......

  1. 将新参数传递给我的插件/指令?目前在页面加载时,我加载指令并通过<div tfinder-map="{queryLimit: 3}">触发插件。理想情况下,当我点击更多结果按钮时,我想通过50。

  2. 在点击更多结果的同时将param传递给我的指令/插件,我希望它实际上触发指令并重新加载页面,以便显示50个结果,而不是只有3。

  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

    此外,如果它有助于可视化,那么这里是用户界面

    the UI

    点击更多结果按钮会显示50个结果而不是3

0 个答案:

没有答案