Knockout.js carraige return in paragraph text

2019-03-14 07:40发布

Using knockout.js, how do I include a carriage return in the text that is bound to the text attribute of a paragraph <p> element.

In my ViewModel I generated a string of text that is bound to the <p> in the View. I want to include carriage returns in the string which the browser displays with the line breaks.

Including <br /> or Environment.NewLine in the string does not seem to work.

3条回答
欢心
2楼-- · 2019-03-14 08:20

You could also use spans to get your bindings and then the html will be as usual.

<span data-bind="text: firstName"></span><br /><span data-bind="text: lastName"></span>
查看更多
混吃等死
3楼-- · 2019-03-14 08:24

You can use the html binding.

JS:

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

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

View :

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

See fiddle

查看更多
够拽才男人
4楼-- · 2019-03-14 08:32

You need to set a css property in your element. 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());

Then the code works. with \n

查看更多
登录 后发表回答