【发布时间】:2016-11-08 11:12:30
【问题描述】:
我很难在模板中显示我的数组项。刚从 GAE 中的实体关系开始,我没有在 SO 上找到合适的解决方案。我必须先在我的处理程序中执行查询吗?如果是这样,我在逻辑上是如何挣扎的。
数据存储Project实体示例展示
数据存储Employees实体示例展示
Project.py
class Project(ndb.Model):
projectID = ndb.IntegerProperty(required=True)
title = ndb.StringProperty(required=True)
description = ndb.StringProperty(required=True)
startAt = ndb.DateTimeProperty(indexed=True)
endAt = ndb.DateTimeProperty()
isFullDay = ndb.BooleanProperty()
days = ndb.KeyProperty(kind='CompanyDay', repeated=True)
employees = ndb.KeyProperty(kind='Employees', repeated=True)
client = ndb.KeyProperty(kind='Client')
class Employees(ndb.Model):
name = ndb.StringProperty()
role = ndb.StringProperty()
模板
data 是通过 Angular 的 http 服务从后端获取的
<md-content class="md-padding projects" layout="row" layout-wrap>
<md-card ng-repeat="data in controller.projects" flex="20" ng-click="editProject(data)">
<img src="" alt="">
<md-card-content>
<div class="project-info">
<h2 class="md-title">{{ data.title }}</h2>
<p>{{ data.description }}</p>
<p>{{ data.employees }}</p>
</div>
</md-card-content>
</md-card>
</md-content>
响应 /cmets 的 Python 代码
class commentsJsonHandler(webapp2.RequestHandler):
@classmethod
def route(cls):
"""
name: index, template: /
"""
return webapp2.Route('/comments', handler=cls, name='_commments_')
def get(self):
projects = Project.query()
def date_handler(obj):
print obj
if isinstance(obj, datetime):
return obj.isoformat()
else:
return str(obj)
self.response.out.write(json.dumps([dict(proj.to_dict(), **dict(id=proj.key.id())) for proj in projects], default=date_handler))
来自 Angular - 从服务器请求的代码
var vm = this;
vm.projects = [];
$http.get('/comments')
.then(function(result) {
console.log(result);
vm.projects = result.data;
});
将员工显示为来自数据存储区。
【问题讨论】:
-
请勿贴代码图片。
-
另外,您需要实际发布检索数据的代码。
-
编辑帖子以在 Angular 中包含服务器获取代码。
-
响应 /cmets 的 Python 代码是什么?
-
现在包含在编辑中
标签: python angularjs google-app-engine google-cloud-datastore