Angularjs路由如何为浏览器之外的应用程序工作?

时间:2016-02-11 07:57:34

标签: angularjs angularjs-routing

我正在使用AngularJS创建单页应用(移动/桌面)。基于我对AngularJS的有限知识,我认为应用程序/网站的路由基于url并使用$ location / $ location.path指令。但是,在移动或桌面应用程序中,没有浏览器。那么如果需要切换视图,AngularJS路由在这种情况下如何工作?

由于

3 个答案:

答案 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来说,根本不依赖网址似乎更有利(对于内部资源,因为你仍然拥有我之前说过的编辑网址)。