我必须在我的任务中显示地图对象。我在JSfiddle尝试过它。当我在我的项目中实现它时,我没有发现JSfiddle在线使用 Knockout JS 3.4.0 lib,而我的项目使用 knockoutJS 3.2.0 。
是否有任何方法可以使此代码适用于 KnockoutJS 3.2.0 ?
除了更新库以外没有办法吗?
HTML:
<ul>
<li data-bind="foreach: model">
<span data-bind="text: Main"></span>
<ul data-bind="foreach: Sub">
<li><span data-bind="text: $data"></span></li>
</ul>
</li>
KnockoutJS 3.0.0:
var viewModel = function() {
model = ko.observableArray([{
Main: "Main1",
Sub: ["hello", "hi"]
}, {
Main: "Main2",
Sub: ["one", "two"]
}]);
}
ko.applyBindings(new viewModel());
这是我的小提琴:Display Map object 当我将lib插件引入Knockout JS 3.4.0时,同样的小提琴也起作用。 任何建议都会有所帮助!
答案 0 :(得分:1)
这是因为协议错误,你的knockout 3.0.0源代码脚本是使用http
而不是https
加载的。
以下是console
在您尝试在淘汰赛3.0.0下运行时所说的内容 -
Mixed Content: The page at 'https://jsfiddle.net/p5oL3wf5/' was loaded over HTTPS, but requested an insecure script 'http://knockoutjs.com/downloads/knockout-3.0.0.js'. This request has been blocked; the content must be served over HTTPS.
正确的是 -
Uncaught ReferenceError: ko is not defined(…)
而对于其他人而言,它正在发挥作用,因为他们this link已将fiddle加载为http://symfony.com/doc/current/reference/constraints/Valid.html中的外部资源,如果您观察到的是https
而不是http
。< / p>
就两个版本的淘汰剧本之间的差异而言,对于你的小提琴使用的东西,它们几乎是一样的。