我正在尝试在kitsune创建一个电子商务网站。我不想在k-dl中使用_kid值。例如,典型的方法是
k-dl="/product/[[product.name.urlencode()]]/[[product.code]]/[[product._kid]]"
如果我不想使用_kid作为它的长GUID。我想使用代码作为每个产品的唯一性,作为特定产品的标识符。
当我定义k-dl如下时,它给了我一个错误,我必须在URL格式中使用_kid:
k-dl="/product/[[product.name.urlencode()]]/[[product.code]]"
在kitsune中实现对象详细信息页面URL的理想方法是拥有一个唯一的id,即_kid和k-object,以获得最佳性能,因为kitsune的对象由_6kid唯一标识,自动生成的kitsune id。
但是,有一种替代方法可以在没有kitsune唯一id(_kid(的情况下实现对象详细信息页面。
如果你想从你的角度保持对象的唯一性,你可以在kitsune对象中创建任何唯一的字段,并按如下所示使用它。因此,_kid是必需的。如果您正在使用k-object,则需要从页面中删除k-object属性。
比方说product.code是您从K-Admin维护的唯一字段,您可以使用K-dl,如下所示。
<head k-dl="/product/[[product.name.urlencode()]]/[[product_code_param]]">
这里[[product_code]]是URL中的动态变量,请确保您传递了正确的产品代码值来生成URL。
现在你只需使用下面的中的k重复循环就可以得到唯一的对象
<div k-repeat="[[product in business.products]]">
<div k-show="[[product.code == product_code_param]]"> <!--this will only render if the product code is matching with the url param-->
<p>[[product.name]]</p>
</div>
</div>