从链接中的数据绑定中获取字符串

时间:2015-01-27 15:42:34

标签: javascript knockout.js

我是JavaScript的新手,我遇到了这个问题。也许我问的是一些非常愚蠢的东西,但我无法找到解决方案。

我有这个:

<div class="text" id="title" data-bind=" text:display >
</div> 

我需要从data-bind中取出字符串,替换+符号的空格并将其放在链接中。

我需要这样的东西:

<a href="path/index.php=q?%22 "Here the string" %22 " target="iframe2">click</a>

所以我最终创建了一个带有data bind值的搜索链接。 另外,我需要定位iframe2,因为我的网站分为两个iframe。

我希望有人可以帮助我。 谢谢!

1 个答案:

答案 0 :(得分:2)

考虑到您正在使用淘汰赛,为什么不使用attr绑定?

<a data-bind="attr:{href:'path/index.php?q='+encodeURIComponent(display())}">click</a>

另一种选择是提供自己的bindingHandler:

ko.bindingHandlers.customLink = {
    init: function(element, valueAccessor, allBindings, viewModel, bindingContext){
        var val = ko.unwrap(valueAccessor());
        element.href = 'index.php?q=' + encodeURIComponent(val);
    },
    update: function(element, valueAccessor, allBindings, viewModel, bindingContext){
        var val = ko.unwrap(valueAccessor());
        element.href = 'index.php?q=' + encodeURIComponent(val);
    }
};

然后你会使用:

<a data-bind="customLink:display">click</a>