我循环浏览一个对象。如果其中一个键与另一个fields
对象的值匹配,则返回该type
个对象的fields
值:
// OBJECTS
user: {
email: '',
password: ''
}
formFields: [
{ name: 'email', type: 'text', required: true },
{ name: 'password', type: 'password', required: true }
]
// HTML
<input :type="getPropType($key)"
// FUNCTION
getPropType (key) {
console.log(this.fields)
console.log(key)
return this.fields.map(field => {
if (field.name === key) return field.type
})
}
除了每个field.type
:
这很奇怪,因为日志不输出任何逗号:
可能是什么原因?
答案 0 :(得分:3)
我认为你要做的是提取对象的type
,其名称与key的值相同,在这种情况下,更合适的解决方案就是这样做 - 即查找具有给定名称的元素然后提取其类型
getPropType(key) {
console.log(this.fields)
console.log(key);
var type;
this.fields.some(field => {
if (field.name === key) {
type = field.type;
return true;
}
});
return type
}
如果您想使用.map()
,那么
return this.fields.filter(field => field.name === key).map(field => field.type).join('')
答案 1 :(得分:1)
Array.prototype.map()返回数组。你的“getPropType”返回[“text”,“”],在你的情况下它应该减少。
<?php
namespace Acme\Bundle\PostBundle\Listener;
use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ODM\MongoDB\Event\LifecycleEventArgs;
public function postUpdate(LifecycleEventArgs $eventArgs)
{
/* @var $odm DocumentManager */
$odm = $eventArgs->getDocumentManager();
$object = $eventArgs->getDocument();
if ($object instanceOf Post) {
// how to check if description field is updated
}
}