正如我在上面的评论中所说,应用程序结构将不再依赖服务器来模板化 UI 或生成标记。您的服务器本质上是一个数据和文件主机。
好的..假设您在 Sinatra 中有一些路由设置为返回以下 json(内容类型:application/json):
[
{ "id": 1, "name": "Foo" },
{ "id": 2, "name": "Bar" }
]
然后,您将在 Angular 中使用类似的东西来加载该数据(基本上):
应用程序.js
//create your application module.
var app = angular.module('myApp', []);
//add a controller to it
app.controller('MyCtrl', function($scope, $http) {
//a scope function to load the data.
$scope.loadData = function () {
$http.get('/Your/Sinatra/Route').success(function(data) {
$scope.items = data;
});
};
});
然后在你的标记中你会这样做:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MyCtrl">
<button ng-click="loadData()">Load Data From Server</button>
<ul>
<li ng-repeat="item in items">ID: {{item.id}}, Name: {{item.name}}</li>
</ul>
</body>
</html>
我希望这会有所帮助。