2017-09-29 28 views
0

をこれはMLABで定義された私の製品ドキュメントからの抜粋です:角度+ MongoDBはマングース:コンポーネントは、オブジェクトのプロパティを認識しない

{ 
"_id": { 
    "$oid": "596161e1734d1d25634366ce" 
}, 
"images": { 
    "regular": [ 
     "Amana Electric Range in Stainless Steel-1.jpg", 
     "Amana Electric Range in Stainless Steel-2.jpg", 
     "Amana Electric Range in Stainless Steel-3.jpg", 
     "Amana Electric Range in Stainless Steel-4.jpg", 
     "Amana Electric Range in Stainless Steel-5.jpg" 
    ] 
    } 
} 

これはマングースの対応機種の抜粋です。

const ProductSchema = new Schema({ 
    images:{} 
}); 

var Product = mongoose.model('Product', ProductSchema, 'product'); 
module.exports=Product; 

これは私の製品モデルです。角度:

export class Product { 
_id: string; 
images:{}; 
} 

私はAngulaの画像を表示できます以下に示すようにRテンプレート:

上記のテンプレートのように、私は同じ構文を使用して、私のコンポーネントで同じ画像にアクセスしよう
<div class="col-xs-4"> 
    <img src="..\assets\images\{{product.images.regular[0]}}" 
     id="largeimage" class="text-center"> 
    </div> 

ngOnInit() { 
this.route.params.subscribe(params => { 
    let id = params['id']; 

    this.product = this.dataService.getProduct(id); 

    this.mainImage = this.product.images.regular[0]; 
}) 
} 

私はエラーを取得する:プロパティの正規にはありません存在する。プロパティregularはテンプレートに示されているように存在しますが、何らかの理由でコンポーネントで機能しません。私はそれが私のモデル定義:images {}と関係していると信じています。モンゴースとAngularモデルでイメージオブジェクトを正しくモデル化するにはどうすればよいですか?

答えて

1

あなたのマングーススキーマが空のオブジェクトを必要としています。タイプスクリプトのanyタイプに似たものをお探しの場合は、mongoose.Schema.Types.Mixedを使用してください。

export class Product { 
    _id: string; 
    images: any; 
} 
+1

import * as mongoose from 'mongoose'; const ProductSchema = new mongoose.Schema({ images: mongoose.Schema.Types.Mixed }); const Product = mongoose.model('Product', ProductSchema, 'product'); module.exports = Product; 

また、角度であなたの製品モデルには明示的にタイプ述べるのベストプラクティスです「の画像は:任意のは」魅力のように働きました。どうもありがとうございました。 – koque

関連する問題