给出以下代码。为什么将“test”替换为“”,而“test2”替换为“Travel Log”
<h1 id="mainHeader" data-bind="text: $root.localization.frontHeader">test</h1>
<div id="pages" data-bind="with: localization">
<h1 class="frontHeader" data-bind="text: frontHeader">test2</h1>
</div>
答案 0 :(得分:1)
如果您的localization
属性是ko.observable
,那么如果您在表达式中使用它,则需要编写localization()
。
所以将绑定更改为:
<h1 id="mainHeader" data-bind="text: $root.localization().frontHeader">test</h1>
<div id="pages" data-bind="with: localization">
<h1 class="frontHeader" data-bind="text: frontHeader">test2</h1>
</div>
但是在这种情况下,当localization
属性为空时(with
绑定为您执行此操作),您需要处理该情况。
为了使它适用于localization
属性为空(或为null或未定义)的情况,则需要在绑定中添加额外的检查:
<h1 id="mainHeader"
data-bind="text: $root.localization() && $root.localization().frontHeader">
test
</h1>
<div id="pages" data-bind="with: localization">
<h1 class="frontHeader" data-bind="text: frontHeader">test2</h1>
</div>
演示JSFiddle。
答案 1 :(得分:0)
"with"
为您调用一个observable。
在表达式中,您需要自己调用它,因此您需要添加“()”。 data-bind="text: $root.localization().frontHeader"