Angularjs 角度边栏搜索指令
在我的angular应用程序中,我有一个全局侧栏导航指令,其中包括为用户提供全局搜索(使用一系列标准,而不仅仅是一个文本字段) 在搜索时,我想显示一个带有搜索结果的页面 现在,侧边栏是在主应用程序html中定义的,共享搜索结果数据的最佳方式是什么? 边栏应该负责执行搜索吗?如果是,我如何将其数据共享到特定的页面结果? 或者在另一方面,也许具体的搜索结果页面应该负责这些数据?如果是,在执行搜索时如何将其与边栏搜索参数连接 我们非常感谢这种情况下的任何最佳实践 Angular服务是使用依赖项注入(DI)连接在一起的可替换对象。您可以使用服务在应用程序中组织和共享代码Angularjs 角度边栏搜索指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,在我的angular应用程序中,我有一个全局侧栏导航指令,其中包括为用户提供全局搜索(使用一系列标准,而不仅仅是一个文本字段) 在搜索时,我想显示一个带有搜索结果的页面 现在,侧边栏是在主应用程序html中定义的,共享搜索结果数据的最佳方式是什么? 边栏应该负责执行搜索吗?如果是,我如何将其数据共享到特定的页面结果? 或者在另一方面,也许具体的搜索结果页面应该负责这些数据?如果是,在执行搜索时如何将其与边栏搜索参数连接 我们非常感谢这种情况下的任何最佳实践 Angular服务是使用依赖项注入(D
让你的未来变得光明的步骤:
main
、sidebar
、results
SearchResultsService
在它们之间转换数据,该服务将:
a) 为每个键获取带有true
或false
的sidebar
过滤器的集合(键作为GET参数的名称,用于传递到后端的搜索API)
b) 根据结果
模块方法序列化或反序列化数据
c) 做一些分页
d) 如果需要,保留甚至缓存数据(用于无限滚动功能)侧边栏
和结果
将是主
(子模块)的视图,因此您可以在需要时共享主控制器方法(noob方式)
当我面对这样一个模块的实现时,我曾经在事件系统中逃离$watch
和$。如果您还年轻,请使用
上的,这将允许您通知每个模块一些重要的事情(如分页更改、项目选择等),同时将它们分开
您可以在主模块中自由地放置现有的侧栏,但我已经从指令转移到使用自己的控制器和模板的视图
指令用于可重用项,或者用于粘贴功能。但dat侧栏显然应该被定义为应用程序(aka模块)的独立部分,而不是指令
注意,保持控制器简单。
谷歌列表:
ui路由器吗
?是的,我使用ui路由器。您能提出更好的建议吗?如果您需要显示搜索结果页面,并且希望覆盖现有页面-您需要使用ng If
和ng view='results'
谢谢,侧边栏应该是ui路由器中的实际抽象状态?这样做的好处是什么?不,不。阅读更多关于ui路由器的信息<代码>抽象状态
仅用于父状态。在您的例子中,sidebar
不是抽象的,而是包含在整个应用程序结构顶部的main
模块中的单独视图。在谈到子模块时,不要操作abstractstate
。