首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular需要web服务器才能运行吗?那么,如果我给浏览器一个本地文件的url,Angular会起作用吗?

Angular需要web服务器才能运行吗?那么,如果我给浏览器一个本地文件的url,Angular会起作用吗?
EN

Stack Overflow用户
提问于 2015-07-08 01:30:54
回答 2查看 48.2K关注 0票数 22

我的意思是,我读到过Angular允许使用模拟数据,这样就不需要连接RESTFul apis。我能想到一个用例,UX设计师只需要查看化妆品,而不需要连接到web服务器。我也可以想到其他的用例。

所以Angular的工作是,我给浏览器一个本地文件的url,比如C:\temp\index.html,js文件在c:\temp或c:\temp\js。

所以实际上,我试过了,这里所有的都在一个应用程序文件中(我知道它应该分开)

代码语言:javascript
复制
<html ng-app="myNoteApp">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>

<div ng-controller="myNoteCtrl">

<h2>My Note</h2>

<p><textarea ng-model="message" cols="40" rows="10"></textarea></p>

<p>
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
</p>

<p>Number of characters left: <span ng-bind="left()"></span></p>

</div>

<script >
// was in separate file but pasted in for demo purposes
var app = angular.module("myNoteApp", []);

</script>
<script >
// was in separate file but pasted in for demo purposes
app.controller("myNoteCtrl", function($scope) {
    $scope.message = "";
    $scope.left  = function() {return 100 - $scope.message.length;};
    $scope.clear = function() {$scope.message = "";};
    $scope.save  = function() {alert("Note Saved:" + $scope.message);};
});
</script>
</body>
</html>

结果是,它在Chrome和Firefox上运行没有问题,IE最初会阻止内容,但可以允许它运行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-08 01:43:19

因此,我的方法是创建一个temp服务并加载它,而不是从url/文件加载。

示例:

代码语言:javascript
复制
//tempUser.js
angular.module("app").constant("tempUser", {
    firstname : "Joe",
    lastname : "Smith"
});

//userService.js
angular.module("app").factory("userService", function ($q, tempUser) {
    return {
        load : load
    };

    function load(id) {
        //TODO: finish impl
        return $q.when(tempUser);
    }
});

这样,控制器仍然可以像从web服务加载一样工作。

代码语言:javascript
复制
angular.module("app").controller("UserDetailCtrl", function (userService) {
    userService.load().then(function (user) {
        $scope.user = user;
    });
});
票数 1
EN

Stack Overflow用户

发布于 2015-07-08 01:42:44

你不能仅仅通过本地机器上的文件路径来访问angular应用程序,因为你会得到跨域错误。

解决方案是安装http-server (which requires node.js to be installed)。这允许您在您的机器本地创建http-server,并允许您访问Angular应用程序,就像它是出于开发和测试目的而在线托管的一样。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31275527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档