2013-07-02 39 views
27

使用knockout.js,如何在文本中包含回車符,該文本與段落<p>元素的文本屬性綁定。Knockout.js carraige返回段落文本

在我的ViewModel中,我生成了一個綁定到視圖中的<p>的文本字符串。我想在包含換行符的瀏覽器顯示的字符串中包含回車符。

包括<br />Environment.NewLine在字符串中似乎不起作用。

回答

15

您可以使用html binding

JS:

function AppViewModel() { 
    this.firstName = "Bert<br\>Test"; 
    this.lastName = "Bertington"; 
} 

// Activates knockout.js 
ko.applyBindings(new AppViewModel()); 

查看:

<p>First name: <strong data-bind="html: firstName">todo</strong></p> 
<p>Last name: <strong>todo</strong></p> 

See fiddle

+1

謝謝。完美 – Martin

+0

如果你打算這樣做,一定要編碼任何不是HTML編碼的內容 – bdukes

+0

謝謝,data-bind =「html:...」對我來說是什麼 – SeanKPS

52

您需要在元素中設置一個css屬性。 white-space: pre-wrap

<p style="white-space: pre-wrap">First name: <strong data-bind="text: firstName">todo</strong></p> 
<p>Last name: <strong>todo</strong></p> 

function AppViewModel() { 
    this.firstName = "Bert" + " \n " + "Test"; 
    this.lastName = "Bertington"; 
} 

// Activates knockout.js 
ko.applyBindings(new AppViewModel()); 

然後代碼工作。與\n

+5

我覺得這個解決方案好多了,因爲在javascript中沒有HTML特定的HTML。 – Samuel

+0

絕對是一個更好的解決方案,尤其是在數據是用戶編輯數據的情況下,HTML解決方案需要使用完全不必要的所見即所得編輯器 –

+0

非常感謝! –

0

你也可以使用跨度,讓您的綁定,然後將HTML將照常進行。

<span data-bind="text: firstName"></span><br /><span data-bind="text: lastName"></span>