如何解决使用Knockout.js,如果该网址与当前网站的网址不匹配,我试图显示一个外部图标-绑定
我正在使用Knockout.js,遇到一个问题,我需要告诉网站搜索结果是外部链接还是内部链接。现在,它们都显示为外部链接,因为每个都有一个显示结果,并在每个搜索结果上显示图标。我已经硬编码了一个解决方案,但是我需要一个通用解决方案,因为它将在多个站点上使用。我需要绑定到标记,并告诉它仅在URL匹配站点URL时显示,而无需硬编码。我当时在考虑使用变量,但是我对开发尚不陌生,因此不确定在这种情况下如何进行操作或语法看起来如何。这是我的foreach块的内容:
<ul class="search-results" data-bind="foreach: results">
<li>
<a data-bind=" attr: { href: $data.url }" title="View Details">
<h4>
<b data-bind="html: $data.title"></b>
</h4>
<p data-bind="text: $data.description"></p>
**<i data-bind="visible: url.indexOf('example.com/') === -1" class="fa fa-
fw fa-external-link"></i>**
</a>
</li>
</ul>
编辑: 找到了对我有用的解决方案!创建了一个变量并将其绑定到我的html文件中的i标签。
self.isExternal = function (url){
var domain = function(url) {
return url.replace('http://','').replace('https://','').split('/')[0];
};
return domain(location.href) !== domain(url);
};
数据绑定以检查i标签上的可见性。
<i data-bind="visible: $data.externalIcon" class="fa fa-fw fa-external-link"></i>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。