使用knockout文本绑定宽度自动不更新

时间:2014-07-24 01:36:55

标签: jquery html css knockout.js

好的,所以我刚刚开始研究正在进行的项目。我注意到一个错误,用户名出现在另一个元素中,直到光标悬停在其上。

经过多次调查后我发现这是因为这个项目使用的是Knockout.js。对于span元素中的占位符,它们具有不间断空间。因此,当呈现页面时,它有时会忘记使用新更改的文本更新宽度auto。

<span data-bind="text: db.who">&nbsp;</span>
<!--and updates to-->
<span data-bind="text: db.who">Username</span>
<!--however, ^this^ updated version does not allow for the width: auto to work.-->

我愿意接受涉及html,css,javascript和/或JQuery的答案

1 个答案:

答案 0 :(得分:0)

这个你需要像这样使用attr绑定

<span data-bind="text: db.who,attr:{width:SetWidth}">Username</span>

self.SetWidth = function(){
    return 'auto'
}

这将动态应用,因此当页面被渲染时,knockout将调用SetWidth函数返回一些内容并将其应用于元素