【问题标题】:Angularjs: Pagination in different routeAngularjs:不同路线的分页
【发布时间】:2014-02-06 13:30:54
【问题描述】:

我已经为这个问题苦苦挣扎了一段时间。我已经在我的主页中实现了分页,效果很好。我的主页上有一个搜索输入,它根据用户搜索返回产品。在控制器中,我将数据路由到不同的 URL 并使用 $rootScope 传递数据。这也很好。但是第二条路线的分页中断,因为我的分页功能在家庭控制器中,我无法访问这些功能,即使使用 $rootScope 或复制所有功能也不起作用。此外,pagedItems 在第二条路由中显示空数组,即使使用 $rootScope 声明也是如此。以下是示例 plunker

http://plnkr.co/edit/fIU2DZEVUc8HVUp7sgaF?p=preview

我的问题:

  1. 在 AngularJS 中何处编写可重用函数以及如何在我的视图中使用它们。
  2. 假设我解决问题的方法是错误的,那么实现此逻辑的最佳方法是什么。

非常感谢 JSFiddle / Plunker 示例。

提前感谢您的帮助!

【问题讨论】:

  • 谢谢大家的帮助。真的很感谢你们!

标签: angularjs routing pagination


【解决方案1】:

在您的链接中,search.html 绑定到 homeController,而您在路由设置中将其控制器指定为 fpctrl。最好的搜索方法是将结果作为参数传递给search.html,并将搜索输入框和按钮放在主页中ng-view之外。

如果你想编写可重用的函数,那么你必须在工厂或服务中编写它们。

【讨论】:

    【解决方案2】:

    这可能是对您问题的严格回答。你还会考虑$filter 功能吗?为此,您需要将文本输入更改为:

    <input type="text" class="input-medium" placeholder="product" ng-model="search">
    

    然后您可以删除您的搜索按钮。并添加 | filter:search 以及元素的 ng-repeat。

    这是一个有点复杂但完整的例子http://jsfiddle.net/SAWsA/11/

    【讨论】:

    • 没有@ysusuk。那个搜索按钮是调用服务和获取数据。我不会拥有初始加载的所有数据。抱歉,如果我展示的示例令人困惑。
    • 是的,对不起 =) 我理解错了。怎么样 - 将您的搜索结果与分页功能一起存储到服务中:
    • 然后先将其注入home视图控制器,然后再注入search视图控制器。服务是有角度的单身人士。问题是在您当前的配置中,当您为两个视图指定 homeController 时,每个视图都会有不同的实例(正如@Kavitha K Gowd 所说,您根本没有fpCtrl)。所以路由定义了哪个控制器用于哪个视图
    • @ysusuk..我目前正在尝试实现相同的功能,但我一般在 Angular/JavaScript 方面没有太多经验。您能否显示来自服务的函数和变量调用..基于它我将尝试将我的逻辑移至服务。另外,如何在我的控制器/视图中访问这些功能需要我自己检查。
    • 如果你在$routeProvider中指定了ctrl,你可以避免在view.html中指定它
    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多