无法将切片应用于viewmodel knockout

时间:2014-08-28 15:38:35

标签: model-view-controller knockout.js

由于以下错误消息,我无法将切片或子网格应用于GId

Uncaught TypeError: Unable to process binding "foreach: function (){return waititem }"
Message: Unable to process binding "style: function (){return { color:GId.slice(0,1) =='TR'?'black':'red'} }"
Message: undefined is not a function 

HTML

<table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
        </tr>
    </thead>
    <tbody data-bind="foreach: waititem">
        <tr data-bind="style: { color: GId.slice(0,1) == 'TR'? 'black' : 'red' }">
            <td data-bind="text: PId"></td>
            <td data-bind="text: PName"></td>
        </tr>
    </tbody>
</table>

如何应用切片来检查是否存在特定子字符串并分别设置样式?

1 个答案:

答案 0 :(得分:0)

您错误地使用了style绑定中的切片方法。您需要使用slice的语法

slice(start, end)

其中start的默认值为0表示初始位置,end表示结束字符。在您的方案中,切片将返回一个长度为1 的字符串,因为您使用的是slice(0,1),但您正在与{em>长度为2 的'TR'进行比较。而不是你需要使用slice(0, 2) === 'TR'

 <tr data-bind="style: { color: GId.slice(0,2) == 'TR'? 'black' : 'red' }">
      <td data-bind="text: PId"></td>
      <td data-bind="text: PName"></td>
 </tr>

<强> DEMO