Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度边栏搜索指令_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 角度边栏搜索指令

Angularjs 角度边栏搜索指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,在我的angular应用程序中,我有一个全局侧栏导航指令,其中包括为用户提供全局搜索(使用一系列标准,而不仅仅是一个文本字段) 在搜索时,我想显示一个带有搜索结果的页面 现在,侧边栏是在主应用程序html中定义的,共享搜索结果数据的最佳方式是什么? 边栏应该负责执行搜索吗?如果是,我如何将其数据共享到特定的页面结果? 或者在另一方面,也许具体的搜索结果页面应该负责这些数据?如果是,在执行搜索时如何将其与边栏搜索参数连接 我们非常感谢这种情况下的任何最佳实践 Angular服务是使用依赖项注入(D

在我的angular应用程序中,我有一个全局侧栏导航指令,其中包括为用户提供全局搜索(使用一系列标准,而不仅仅是一个文本字段)

在搜索时,我想显示一个带有搜索结果的页面

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

我们非常感谢这种情况下的任何最佳实践

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


让你的未来变得光明的步骤:

  • 将搜索模块分为三个模块:
    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