为什么AngularJS ng-view不能在本地工作?

use*_*584 21 html angularjs angularjs-directive angularjs-ng-include

我已经工作了几个小时来获取我的链接,使用我的AngularJS应用程序点击进入不同的视图.

但是,我似乎只能在Plunker上获得在线工作的功能.

我一直在尝试在本地测试我的机器上的点击功能,而ng-view似乎没有加载.当我下载我知道的Plunker代码是正确的,因为它正在使用Plunker时,ng-view似乎在本地托管后退出工作.

我也有类似的问题,我已经将ng-include和指令定义为他们自己的HTML标签.

有没有理由这些不能在我的电脑上本地工作?(还有一种方法可以用来测试它吗?)

如果您愿意,可以在这里查看我在Plunker上谈论的一些代码.

Vad*_*dim 27

双方ng-viewng-include使用AJAX来加载模板.问题是默认情况下浏览器不允许AJAX请求位于本地文件系统上的文件(出于安全原因).因此,您有两种选择:

  1. 运行将为您的文件提供服务的本地Web服务器
  2. 告诉您的浏览器允许本地文件访问

如果您使用的是Mac,那么第一个选项就相当简单,因为您有几个内置的Web服务器(httpd称为Apache 和Python模块SimpleHTTPServer).要运行Python SimpleHTTPServer模块,只需在文件所在的文件夹中打开控制台并运行即可

python -m SimpleHTTPServer 3000
Run Code Online (Sandbox Code Playgroud)

然后打开浏览器并输入http://localhost:3000.而已.

如果你在Windows上,它也是可能的.您可以安装例如Wamp并从中提供文件.

Chrome可以使用第二个选项,只需使用--allow-file-access-from-files命令行选项运行它,或者在Chrome可执行文件的路径后添加此标记.

资源也可用于了解如何在不同浏览器中本地运行事物以及使用不同的Web服务器.


Tyl*_*nis 17

ng-view和ng-include生成ajax请求以提供模板文件.因为您在本地运行它,它无法提出该请求.解决此问题的一个简单方法是使用http-server通过本地服务器提供内容.