修复一下这段代码 <view class="card {{isExpired ? 'expired' : ''}}"> <!-- 卡片内容 --> </view>
时间: 2024-03-18 21:45:44 浏览: 45
这段代码的作用是在`class`属性中根据变量`isExpired`的值来动态添加一个`expired`类,如果`isExpired`为`true`则添加,否则不添加。
如果你遇到了类似`"没有找到expired.js"`这样的错误提示,可能是因为在代码的其他地方使用了`expired`这个字符串而出现了问题,和这段代码本身无关。
如果以上问题都已经解决,那么这段代码本身是没有问题的,可以正常使用。如果你仍然遇到了问题,请提供更多的错误信息和上下文,让我能够更好地帮助你解决问题。
相关问题
wxml <view class="card {{isExpired ? 'expired' : ''}}"> <!-- 卡片内容 --> </view>报错说我没有expired.js正常吗
这个错误提示可能是因为在`class`属性中使用了一个变量`isExpired`,但是这个变量的值为`undefined`或者不是一个布尔类型,导致模板引擎在渲染`class`属性时出错。
需要检查一下你的页面逻辑,确保变量`isExpired`的值为布尔类型(true/false),并且已经正确定义和赋值。如果变量`isExpired`是在页面的`js`文件中定义的,需要确保它已经被正确导入到了该页面的`wxml`文件中。
此外,模板引擎在渲染`class`属性时,会将`isExpired`变量的值转换为字符串类型。如果`isExpired`变量的值为`true`,则会将`expired`字符串添加到`class`属性中;如果`isExpired`变量的值为`false`或`undefined`,则不会添加任何字符串到`class`属性中,即`class`属性的值为空字符串。
最后,需要确认你的代码中没有涉及到`expired.js`这个文件,因为该文件与上述错误提示没有任何关系。
void PolicySinkSelectCapability(Port_t *port) { /* AW_LOG("enter PolicySubIndex = %d\n", port->PolicySubIndex); */ switch (port->PolicySubIndex) { case 0: if (PolicySendData(port, DMTRequest, &port->SinkRequest, sizeof(doDataObject_t), peSinkSelectCapability, 1, SOP_TYPE_SOP, AW_FALSE) == STAT_SUCCESS) { TimerStart(&port->PolicyStateTimer, tSenderResponse); port->WaitingOnHR = AW_TRUE; } break; case 1: if (port->ProtocolMsgRx) { port->ProtocolMsgRx = AW_FALSE; if (port->PolicyRxHeader.NumDataObjects == 0) { switch (port->PolicyRxHeader.MessageType) { case CMTAccept: /* Check if PPS was selected (Here as well, for GUI req) */ port->PpsEnabled = (port->SrcCapsReceived[port->SinkRequest.FVRDO.ObjectPosition - 1].PDO.SupplyType == pdoTypeAugmented) ? AW_TRUE : AW_FALSE; port->PolicyHasContract = AW_TRUE; port->USBPDContract.object = port->SinkRequest.object; TimerStart(&port->PolicyStateTimer, tPSTransition); SetPEState(port, peSinkTransitionSink); if (port->PpsEnabled == AW_TRUE) TimerStart(&port->PpsTimer, tPPSRequest); break; case CMTWait: case CMTReject: if (port->PolicyHasContract) SetPEState(port, peSinkReady); else { SetPEState(port, peSinkWaitCaps); /* Make sure we don't send reset to prevent loop */ port->HardResetCounter = nHardResetCount + 1; } break; case CMTSoftReset: SetPEState(port, peSinkSoftReset); break; default: SetPEState(port, peSinkSendSoftReset); break; } } else { switch (port->PolicyRxHeader.MessageType) { case DMTSourceCapabilities: UpdateCapabilitiesRx(port, AW_TRUE); SetPEState(port, peSinkEvaluateCaps); break; default: SetPEState(port, peSinkSendSoftReset); break; } } } else if (TimerExpired(&port->PolicyStateTimer)) { SetPEState(port, peSinkSendHardReset); } else { port->PEIdle = AW_TRUE; } break; } }代码分析
这是一个函数,函数名称为PolicySinkSelectCapability,其参数为指向Port_t类型的指针port。
该函数的作用是选择Sink的能力并发送请求。
函数采用switch语句根据port->PolicySubIndex的值来进行不同的操作。当PolicySubIndex为0时,函数会调用PolicySendData函数发送一个DMTRequest类型的请求,并启动定时器TimerStart。当PolicySubIndex为1时,函数会判断port->ProtocolMsgRx的值,如果为真,则进行一系列的判断,根据接收到的消息类型进行不同的操作;如果为假,则判断定时器TimerExpired的值,如果为真,则调用SetPEState函数设置电源协商状态,并进行相应的操作;否则,将port->PEIdle的值设置为真。
在具体的操作中,当接收到的消息类型为CMTAccept时,会设置port->PpsEnabled的值,并启动定时器TimerStart;当接收到的消息类型为CMTWait或CMTReject时,如果已经有合同,则设置电源协商状态为peSinkReady;否则,设置电源协商状态为peSinkWaitCaps,并将port->HardResetCounter的值设置为nHardResetCount + 1;当接收到的消息类型为CMTSoftReset时,设置电源协商状态为peSinkSoftReset;否则,设置电源协商状态为peSinkSendSoftReset。
当接收到的消息类型为DMTSourceCapabilities时,调用UpdateCapabilitiesRx函数更新接收到的能力,并设置电源协商状态为peSinkEvaluateCaps;否则,设置电源协商状态为peSinkSendSoftReset。
阅读全文