我正在使用AngularJS创建单页应用(移动/桌面)。基于我对AngularJS的有限知识,我认为应用程序/网站的路由基于url并使用$ location / $ location.path指令。但是,在移动或桌面应用程序中,没有浏览器。那么如果需要切换视图,AngularJS路由在这种情况下如何工作?
由于
答案 0 :(得分:0)
如果您正在讨论Angular应用程序,它总是需要某些东西来解释。 Angular是用JavaScript编写的,这意味着它必须由理解JavaScript的东西来解释。我使用的是interpreted instead of compiled,因为JavaScript不是编译语言。
但是,那么解释JavaScript的东西如何在我问的屏幕上显示它?为此,您需要一些背景信息。
DOM
这是我们进入文档对象模型DOM的地方。来自W3c:
文档对象模型是一个平台和语言中立的 允许程序和脚本动态访问的接口 并更新文件的内容,结构和风格。该文件 可以进一步处理,处理结果可以 并入到提交的页面中。这是一个概述 与W3C和网络相关的DOM相关材料。
将上面的引言愚蠢地说:
您有一个正在显示的文档(网页),DOM允许您更改正在显示的文档。
JavaScript引擎
JavaScript和DOM之间的链接由引擎提供。每个浏览器都使用JavaScript引擎。例如,Chrome使用V8 JavaScript engine。来自introduction of V8:
JavaScript最常用于客户端脚本编写 浏览器,用于操作文档对象模型(DOM)对象 例如。然而,DOM通常不是由提供的 JavaScript引擎,而不是浏览器。同样如此 V8-Google Chrome提供DOM。然而V8确实提供了所有 ECMA中指定的数据类型,运算符,对象和函数 标准。
这如何转化为您的问题?
想要显示JavaScript应用程序的所有内容都需要具有JavaScript引擎和DOM。这可能是Chrome之类的浏览器,也可能是任何其他应用程序。
对路由器做什么的简单解释是更改DOM以显示不同的“文档”。如此明确地说:任何应用程序,无论是移动应用程序还是桌面应用程序,都有DOM了解如何使用Angular的路由系统。
答案 1 :(得分:0)
浏览器外部仅指您正在讲的应用程序? angular通常与HTML页面相关联。所以它是一个框架,用于管理(不完全恰当的单词)html页面,使它们成为单页面应用程序,以便浏览器不需要根据单个页面的请求重新加载整个Web应用程序,它有助于调用html页面到主要的html页面,这使得应用程序不会重新加载整个,而是使可用的请求页面。这是路由的来源。
答案 2 :(得分:0)
Angular会在那里工作得很好。事实上,有一个基于角度顶部的Ionic项目。例如。如果您使用Cordova,则应用程序将在浏览器中呈现(或至少使用浏览器引擎)。所以据我所知,除了用户无法输入网址或点击后退/前进外,它的行为方式完全相同。
此外,我为浏览器构建了一个应用程序,我尽可能不使用URL。例如。我只在状态之间进行转换,并且在我的应用程序中根本没有直接的url。当然,我需要支持用户可以输入url的程度,但如果你正确地映射路由,ui-router就可以自己做。但是,对于SPA来说,根本不依赖网址似乎更有利(对于内部资源,因为你仍然拥有我之前说过的编辑网址)。