Knockout observable用于文本绑定而不更新ui

时间:2016-04-26 09:43:24

标签: javascript knockout.js

这让我疯了好几个小时了。我想我已经在javascript方面尝试了一切。在javascript方面,我有这个值: resultItem.standingNo 这是一个可以观察到的淘汰赛。这个工作正常,它应该更新。我已经使用了订阅者和我能想到的所有内容来查看值的更新,并尝试使用相同的内容来更新其他可观察对象而不是使用此对象。

会发生什么。当我创建observable时,初始值在html中呈现。但是html位从未收到更新。我尝试过使用 .extend({notify:' always'}),我尝试了 observable 计算 pureComputed ,none都不会更新ui。但所有人都获得了新的价值。我在同一个类中有其他可观察的更新。但它们并不位于html的同一个地方。

下面的

resultItem.shortName 不是可观察的,也不需要更新。

所以我的问题是,html是否有一些限制阻止一些可观察的更新?因为我无法在两个" ..."之间看到我的代码有任何问题。这些代码可以在没有问题的情况下获得可观察的更新。有什么想法吗?

<!-- ko foreach: { data: resultLists, as: 'resultList' } -->
    <!-- ko if: resultList.visible -->

        ...

        <!-- ko foreach: { data: resultList.resultItems, as: 'resultItem', afterRender: $parent.renderedHandler } -->

            <!-- Competitor Info Row Start-->
            <tr class="rowDetail" data-bind="toggleCompetitorDetails: resultItem.competitorSelected">
                <td class="selected-competitor-content" colspan="100%">
                    <div class="selected-competitor-container" >
                        <div class="selected-competitor-image">
                            <div class="img" data-bind="attr: { style: 'background-image: url(' + resultList.getRandomImage() + ');' }"></div>
                            <div class="competitor-dot competitor-star" data-bind="attr: {class: resultItem.isTopCompetitor()}, style: { backgroundColor: resultItem.color.toString(), color: resultItem.color.toString() }"></div>
                        </div>
DOES NOTE UPDATE -->    <div class="selected-competitor-position" data-bind="text: resultItem.standingNo"></div> <-- DOES NOTE UPDATE
                        <div class="selected-competitor-info">
                            <p class="selected-competitor-name" data-bind="text: resultItem.shortName"></p>
                            <p class="selected-competitor-captain" data-bind="text: resultItem.name"></p>
                        </div>
                    </div>
                </td>
            </tr>
            <!-- Competitor Info Row End -->

            ...

        <!-- /ko -->

    <!-- /ko --><!-- ResultList visible end -->
<!-- /ko --><!-- ResultLists foreach End -->

0 个答案:

没有答案