私は配列アイテムをテンプレートに表示するのに苦労しています。 GAEのエンティティリレーションシップから始めたばかりで、私はSOに適したソリューションを見つけることができません。私は私のハンドラで最初にクエリを実行する必要がありますか?もしそうなら、どうやって私が論理に苦労しているのか。Datastore 1対多Google App Engine
データストア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
テンプレートは、バックエンドから/コメント
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>
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))
- データストアからのような従業員を表示するサーバー
var vm = this;
vm.projects = [];
$http.get('/comments')
.then(function(result) {
console.log(result);
vm.projects = result.data;
});
からの要求コード。そうでないとあなたは、このメソッドの名前を変更することがありますが、正しく返されたJSON
def date_handler(obj):
print obj
if isinstance(obj, datetime):
return obj.isoformat()
elif isinstance(obj, ndb.Key):
return obj.get().to_dict()
else:
return str(obj)
であなたの従業員のコレクションをレンダリングするndb.Keyを処理するために、あなたのdate_handlerを変更することができ
コードの画像を投稿しないでください。 –
さらに、実際にデータを取得しているコードをポストする必要があります。 –
server-fetching-codeを含むangleを編集した投稿。 –