在Knockout.js data-bind上添加静态文本

Nil*_*Pun 11 knockout.js

是否可以使用以下示例添加静态文本到数据绑定:

<p data-bind="text:someProperty"></p>
Run Code Online (Sandbox Code Playgroud)

我想添加如下静态文本:

<p data-bind="text:' + $' + someProperty"></p>
Run Code Online (Sandbox Code Playgroud)

LDJ*_*LDJ 9

你能不把静态文本和span标签一起放在段落标签内,并在span上放置数据绑定?

<p>text: <span data-bind="[whatever]" /></p>
Run Code Online (Sandbox Code Playgroud)


小智 8

以上是伊姆兰评论的解释,这是一个很好的答案

您的text:表达式通常包含在ko.utils.unwrapObservable调用中:

ko.utils.unwrapObservable(someProperty)
Run Code Online (Sandbox Code Playgroud)

但是当您使用更复杂的表达式时,隐式展开不起作用:

ko.utils.unwrapObservable(' + $' + someProperty) // won't find an observable; won't unwrap
Run Code Online (Sandbox Code Playgroud)

所以你必须自己解开它:

' + $' + ko.utils.unwrapObservable(someProperty) // good
Run Code Online (Sandbox Code Playgroud)

或者既然你知道这是一个可观察的,你可以简单地使用Imran的版本:

' + $' + someProperty() // good, if someProperty is definitely an observable
Run Code Online (Sandbox Code Playgroud)