角度侧边栏搜索指令

时间:2015-11-03 21:03:53

标签: angularjs angularjs-directive

在我的角度应用程序中,我有一个全局侧边栏导航指令,其中包括为用户提供全局搜索(带有一组条件,而不仅仅是文本字段)。

在搜索时,我想显示包含搜索结果的页面。

现在,侧边栏是在主app html中定义的,共享搜索结果数据的最佳方式是什么? 侧栏应该负责执行搜索吗?如果是这样,我如何将其数据分享到特定页面结果? 或者另一方面,也许特定的搜索结果页面应该负责这些数据?如果是这样,在执行搜索时如何将其与侧边栏搜索参数连接?

赞赏此方案的任何最佳做法。

2 个答案:

答案 0 :(得分:2)

让你的未来更加光明的步骤:

  1. 将您的搜索模块分为3个模块:mainsidebarresults
  2. 使用一个主要SearchResultsService翻译每个数据之间的数据:

    a)为每个密钥获取sidebar过滤器集合truefalse(密钥作为GET参数的名称,用于传递到后端的搜索API) );

    b)根据results模块方法序列化或反序列化数据;

    c)做一些分页;

    d)如果需要,可以保留甚至缓存数据(用于无限滚动功能);

  3. sidebarresults将是main(子模块)的视图,因此您可以根据需要共享主控制器方法(noob方式)

    当我面对这样的模块的实现时,我使用black magic来逃避$watch$on事件系统。如果你还年轻 - 那么使用$on将允许你通知每个模块有关重要的事情(例如分页更改,项目选择等),并将它们保持分开。

    您可以将现有的侧边栏放在主模块中,但我已经从指令移动到使用自己的控制器和模板查看。

    指令用于可重复使用的项目,用于粘贴功能。但是显然应该将dat侧边栏定义为app(aka模块)的单独部分,而不是指令。

    P.S。保持控制器简单。 谷歌列表:

答案 1 :(得分:1)

  

Angular服务是使用依赖注入(DI)连接在一起的可替换对象。您可以使用服务在整个应用中组织和共享代码。

https://docs.angularjs.org/guide/services