当我拥有所有实例化的部分时,如何在 Angular SPA 中重绘 ITHit Ajax 文件浏览器
How can I redraw the ITHit Ajax File Browser in an Angular SPA when I've got all the instantiated parts?
由于各种原因,我不会深入,我已经成功地将ITHit Ajax文件浏览器包装在一个Angular Controller中,它本身被加载并包装在一个Angular-UI-Router UI-View中。
所有设置都是通过前面的服务调用配置的(以支持具有 shifty url 的云环境),我什至已经解决了我所有的 CORS(跨源请求)问题,并且我们已经在 DAV 服务器上连接了自定义 Oath2 实现。所有这些都成功地与ITHit文件浏览器配合使用,作为我们内容浏览实现的一个非常核心的东西。
截至目前,当我导航某些区域时,Angular-ui-router 会调整 URL,视图会响应,并且包装 ITHit 的角度控制器会响应视图更改,并且(无需重新加载视图)使用可用的 IT Hit 命令重新获取适当的 DAV URL(例如 SetSelectedFolderAsync)
这是我(希望很简单)的挑战:当我导航到某些区域时 - Angular-UI-router 只是用新内容重新加载包含的 UI-View,但当我返回时 - ITHit Ajax 文件浏览器不会重绘。
以下是我挑战的一些准则(如果您提供我可以处理的东西,则可以忽略):
- 我宁愿避免"隐藏"ITHit容器(因为这无关紧要,我不想管理保持它日期,因为状态在视图中更改。这些更改会影响 DAV 路径)。我也不想担心不必要的网络流量。我真的很想让Angular-UI-Router用浏览器所在的 UI 视图。
- 我想保留任何需要调用的调用都可以调用到角度控制器(它管理身份验证、路径解析和上下文设置配置 - 随着用户导航而变化)。
- ITHit解决方案生成的所有内容(最重要的事情)都是存储在单例("DavBrowserService")中 - 所以当我返回文件浏览器视图,我从初始存储了所有内容实例化包括:
- ITHit 对象的实例
- 生成的 ITHit.Loader 实例
- 以前生成的 AjaxFileBrowser.Controller Object (ITHit.oNS.Controller) 的实例
- 以前生成的 WebDavSession 对象 (ITHit.oNS.WebDavSession) 的实例
有了上述内容 - 我希望我可以简单地将这些实例重新连接到现在返回的 dom-node('afb-content-div')。任何帮助都非常感谢!
更新:下面的"答案"虽然看起来是功能性的 - 实际上不是。但是,我已经解决了这个问题,方法是在用户导航离开时抓取 DOM 实例并将其存储内存,并在用户导航回相应区域后重新附加它。这样,所有的ITHit Magic仍然绑定到正确的DOM节点上,我不必担心部分重新实例化的怪异。 现在似乎很扎实。
我想通了!!看起来如果我通过调用来重新实例化控制器:
var controllerInstance = new ITHit.oNS.Controller( originalSettingsObj );
一切都神奇地重新布线!我已经包装了上面的代码,并检测了"afb-content-div"HTML DOM 节点是否有子节点。
经过对代码的大量挖掘,看起来这是作为参数返回到 ITHitLoader.oninit 回调的参数对象(来自 AjaxFileBrowserLoader 实例)。
感谢您的参与!
- Angular SPA中不需要的页面刷新
- 在Angular SPA中存储凭据
- Google Analytics with SPA (Angular.js)
- ADAL - 在SPA应用程序中的Angular JS中使用的JavaScript,用于调用通过APIGEE暴露的第三方
- 如何通知GoogleBot有关Angular SPA中的404页面
- Angular SPA应用程序使其他URL仍然具有基于URL编号的突出显示导航栏部分
- 在SPA和Angular JS中加载局部视图的最佳方式是什么
- 在Angular SPA中异步加载脚本
- Angular SPA中的Google分析
- 如何创建一个简单的“构建”在Angular SPA中
- Angular JS SPA:如何使用Angular Controller SPA来调用Angular service
- Angular JS路由——SPA内部的链接
- 如何添加外部链接到Angular SPA菜单
- 在Angular SPA中把Controller添加到index.html中
- angular spa应用不能工作ngResource
- 在Angular/Django SPA中存放ng模板的最佳位置是什么?
- 如何保护Angular 2的SPA免受XSS攻击?
- Angular约曼spa点击功能未激活
- 不能在angular spa上加载不同的页面
- Angular.js(SPA)加载时间问题