我必须将来自资源文件的连接值与KO可观察字符串进行字符串连接。 这是我试过的
但我收到错误消息
消息:未定义Office at text(eval at parseBindingsString(knockout-3.4.0.js:68),:3:82) 在更新(knockout-3.4.0.js:98) 在function.a.B.i(knockout-3.4.0.js:72) 在Function.Pc(knockout-3.4.0.js:51) 在Function.Qc(knockout-3.4.0.js:51) 在Function.aa(knockout-3.4.0.js:50) 在Object.a.m.a.B(knockout-3.4.0.js:49) 在淘汰赛 - 3.4.0.js:72 在Object.q(knockout-3.4.0.js:11) at m(knockout-3.4.0.js:71)
“未定义Office”这里Office是从@ Resources.Office的资源文件获得的值。
答案 0 :(得分:1)
可以将资源文件传递给viewmodel吗?那么你应该有权访问它。在下面运行片段。
function model(Resources) {
var self = this;
this.Resources = ko.observable(Resources);
this.foo = ko.observable({
WorkPhone: true,
CellPhone: false
});
}
var Resources = {
'Office': '222-2222',
'OfficeMobile': '333-3333',
'Home': '444-4444'
}
var mymodel = new model(Resources);
$(document).ready(function() {
ko.applyBindings(mymodel);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="with: foo">
<span data-bind="text: $data.WorkPhone ?
'Office: ' + $parent.Resources().Office +
' ,Office Mobile: ' + $parent.Resources().OfficeMobile
: 'Home: ' + $parent.Resources().Home"></span>
</div>
&#13;
虽然我同意Jose的观点,计算或纯计算可能是更好的方法。