我的意思是,我已经读过Angular允许使用模拟数据,因此不需要连接RESTFul api.我可以想到一个用例,用户体验设计师只需看看化妆品,就不需要连接到Web服务器.我也可以考虑其他用例.
因此,Angular的工作是给浏览器一个本地文件的URL,如C:\ temp\index.html,js文件位于c:\ temp或者说c:\ temp\js.
所以实际上,我试过了,这里是一个应用程序文件(我知道应该分开)
<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>
Run Code Online (Sandbox Code Playgroud)
结果是,它在Chrome和Firefox中都没有问题,IE最初会阻止内容但是可以允许它运行.
感谢回复.我可能会删除这个问题,因为人们对它进行了贬低.我实际上认为这是有用的发现,但嘿社区最了解.
Jak*_*ke_ 11
您不能只通过本地计算机上的文件路径访问角度应用程序,因为您将获得跨源域错误.
解决方案是安装http-server(需要安装node.js).这允许您在机器本地创建一个http服务器,并允许您访问Angular应用程序,就好像它是在线托管以进行开发和测试一样.
是的,您可以运行本地文件,但如果您需要服务器上的数据,浏览器应阻止它,具体取决于您运行的浏览器的版本和类型.
以下是PhoneCat教程应用程序:运行开发Web服务器下的官方Angularjs教程解释
虽然Angular应用程序纯粹是客户端代码,并且可以直接从文件系统在Web浏览器中打开它们,但最好从HTTP Web服务器提供它们.特别是,出于安全原因,如果直接从文件系统加载页面,大多数现代浏览器将不允许JavaScript发出服务器请求.
小智 1
因此,我这样做的方法是创建一个临时服务并加载它,而不是从 url/文件加载。
例子:
//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);
}
});
Run Code Online (Sandbox Code Playgroud)
这样控制器仍然可以像从 Web 服务加载一样工作。
angular.module("app").controller("UserDetailCtrl", function (userService) {
userService.load().then(function (user) {
$scope.user = user;
});
});
Run Code Online (Sandbox Code Playgroud)