敲除绑定错误

时间:2015-03-23 12:16:39

标签: javascript text knockout.js binding instagram

所以我有这个加载Instagram数据的画廊,有时Instagram照片没有附带标题,而且它就是中断了,所以最合乎逻辑的做法是检查字幕是否存在但是它仍然会破坏

Live example

<!-- ko if: $root.entries().length != 0 -->
        <!-- ko foreach: $root.entries() -->
            <!-- ko with: $root.entries()[$index()] -->
                <span data-bind="logger: typeof caption"></span>
                <figure>
                    <img src="" data-bind="attr: {src: images.low_resolution.url}"/>
                    <figcaption>
                            <a target="_blank" data-bind="text: user.username, attr: {href: 'http://instagram.com/' + user.username }"></a>
                         <!--ko if: typeof caption != 'null'-->
                            <span>
                                <!-- ko text: caption.text --><!-- /ko -->
                            </span>

                         <!--/ko-->
                    </figcaption>
                </figure>
            <!-- /ko -->
        <!-- /ko -->
    <!-- /ko -->

1 个答案:

答案 0 :(得分:2)

typeof运算符不会返回null,因此您的条件实际上是无条件的:即使caption.text为空,它总是会尝试呈现caption

你可以尝试:

<!--ko if: caption-->

如果caption是“真实的”(不是falsenullundefined,0,空字符串等,这会扩展评论模板的内容。)