我希望在我的架构中有两个自定义属性,如果未定义它们,则它们具有回退值,或者它们的值低于0.0
这是架构:
schema: {
url: { type: 'string'},
key: { type: 'string'},
intensity: {
// default is -100 to trigger fallback
default: -100,
parse: function (value) {
if (value >= 0.0) {
return value
}
return -100
}
}
}
给我问题的属性是强度属性。 如果a-entity
中已定义 <a-entity io3d-data3d="key: mykey; lightMapIntensity: 1.0" shadow="receive: true"></a-entity>
组件正确使用了该值,但是当我打开a-frame 3d编辑器并单击该实体时 - 我收到此错误:
如果未在a-entity
中设置属性,则不会发生。
使用自定义属性时我做错了吗? 有没有办法定义可选属性,将undefined或null作为默认值?
自定义属性类型:
https://aframe.io/docs/0.6.0/core/component.html#custom-property-type
答案 0 :(得分:3)
a-frame检查员尝试使用toFixed(decimalPlaces)
函数对值进行舍入。
组件中传递的值是字符串,据我所知,toFixed()
不适用于字符串,至少不在我的实验中,也不在documentation中。
一个简单的解决方案是返回一个已解析的值:
if (value >= 0.0) {
return parseFloat(value);
}
虽然在将字符串与浮点数进行比较时,它正在进行一些额外的解析,您可能需要在检查之前解析该值:
value = parseFloat(value);
if (value >= 0.0) {
return value);
}
答案 1 :(得分:0)
好的,所以我注意到我的架构试图将我的属性解析为字符串。 如果您没有定义类型,我想这是后备吗?
$notes = Note::search($request->lecturer_search)->where([
['course_id','=',$course_id],
['course_code_number', '=', $request->course_code_number_search]
])->orderBy('created_at','desc')->paginate(5);
至少我没有错误。
也许有人有更好的答案。