Knockout JS 3.0.0:显示地图对象

时间:2016-11-29 07:01:14

标签: javascript knockout.js knockout-3.0

我必须在我的任务中显示地图对象。我在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时,同样的小提琴也起作用。 任何建议都会有所帮助!

1 个答案:

答案 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>

就两个版本的淘汰剧本之间的差异而言,对于你的小提琴使用的东西,它们几乎是一样的。