我正在构建一个MEAN堆栈应用程序。我的一个架构属性是无模式的。
var UserSchema = new Schema({
name: String,
age: Number,
personalities: {}
}, {strict: false});
var User = mongoose.model('User', UserSchema);
在我的用户架构中,个性是无模式的,因为我有一个动态数据,我需要输入这些个性。
这是我的示例数据库:
正如你所看到的,第一个用户有三个人格(星座,体重和身高),第二个人有(工作,想法和爱好)。
在Angular方面,我的问题是,如何从个性中显示动态数据?
以下是示例代码
<h1>Name: {{user.name}}</h1>
<h1>Age: {{user.age}}</h1>
<h1>Personalities: {{user.personalities}}</h1>
现在在这个代码上,就个性而言,它将显示个性的JSON对象。如何动态显示个性?
因为我不能做这样的事情
<h1>Horoscope: {{user.personalities.horoscope}} </h1>
<h1> weight: {{user.personalities.weight}} </h1>
<h1>height: {{user.personalities.height}} </h1>
这只会为1个用户提供服务,因为我的个性是无模式的。有没有办法在Javascript中动态访问对象的属性和属性?所以我可以为所有具有不同个性的用户提供服务。我想要实现的是这样的:
<h5>{{user.personality.firstAttribute}}: {{user.personality.firstValue}}</h5>
<h5>{{user.personality.secondAttribute}}: {{user.personality.secondValue}}</h5>
依此类推,直到它达到物体的最大长度。
答案 0 :(得分:1)
您可以使用ng-repeat
来迭代用户。然后嵌套另一个ng-repeat
来迭代单个用户的个性的属性:
<div ng-repeat="user in users">
<h1>Name: {{user.name}}</h1>
<h1>Age: {{user.age}}</h1>
<h1 ng-repeat="(key,val) in user.personalities">{{ key }}: {{ val }}</h1>
</div>