使用三元运算符将条件禁用的属性传递给刀片组件



有没有办法有条件地将禁用的属性传递给刀片组件?例如,这个问答提到了如何使用三元运算符来传递属性的值,但不管怎样,属性名称都会存在。

我特别尝试使用刀片组件标签中的三元运算符来添加(或不添加(禁用的属性

模板代码:

<x-button {{!$aircraftType->canIslandBuild($island) ? 'disabled' : ''}}>
Build
</x-button>

按钮组件代码:

<button {{ $attributes->merge(['class' => 'inline-flex']) }}>
{{ $slot }}
</button>

该错误涉及将{{!$aircraftType->canIslandBuild($island) ? 'disabled' : ''}}添加到x按钮标签。

我得到的错误是:语法错误,意外的令牌"endif";,预期文件结尾

此外,如果我将这个{{!$aircraftType->canIslandBuild($island) ? 'disabled' : ''}}更改为{{''}},也会发生同样的错误,所以我很好奇你是否可以像在刀片模板中的其他地方一样,在组件标记头内呈现php代码中的字符串。我知道还有其他方法可以通过修改按钮组件代码来传递数据并有条件地添加禁用的属性,但我想知道这里是否有一个简单的解决方案。

听取了matiaslauriti的意见,决定更换

{{!$aircraftType->canIslandBuild($island) ? 'disabled' : ''}}

带有

:disabled="!$aircraftType->canIslandBuild($island)"

而不改变任何其他内容。它似乎被禁用=";被禁用";仅当该值为true时才包括在CCD_ 4变量中。这意味着,只有当!$aircraftType->canIslandBuild($island)为true时,按钮才会渲染disabled="disabled",而当为false时,按钮的最终html上不会渲染任何禁用项。

最新更新