0

私は配列アイテムをテンプレートに表示するのに苦労しています。 GAEのエンティティリレーションシップから始めたばかりで、私はSOに適したソリューションを見つけることができません。私は私のハンドラで最初にクエリを実行する必要がありますか?もしそうなら、どうやって私が論理に苦労しているのか。Datastore 1対多Google App Engine

データストアProjectエンティティ表示例

enter image description here

データストアEmployeesエンティティ表示例

enter image description here

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を変更することができ

enter image description here

+0

コードの画像を投稿しないでください。 –

+0

さらに、実際にデータを取得しているコードをポストする必要があります。 –

+0

server-fetching-codeを含むangleを編集した投稿。 –

答えて

2

もう一度date_handlingをやり直してください

+0

完全に感謝します。今働いて! –

関連する問題