局部视图无法识别Knockout JS

本文关键字:Knockout JS 识别 视图 局部 | 更新日期: 2023-09-27 18:19:20

我有一个主页,其中有一些javascript,从主页加载的部分视图,以及从部分视图页面加载的第二个部分视图。

主页面引用了一个javascript源文件,其中包括knockout js,它声明了许多ko.observables。

这些ko。可观察对象的工作方式与主页面一样,但是当模型通过时,它们无法识别局部视图和第二局部视图的值。

相同的javascript文件真的需要在每个视图上引用吗?

局部视图无法识别Knockout JS

您不需要向部分页面添加引用,而是首先通过ajax调用加载部分视图,然后将绑定应用到回调函数中,如以下示例:

ASP。. NET MVC控制器:

public class TestController:Controller
{
  [HttpGet]
  public ActionResult MyView()
  {
    return PartialView("_MyView");
  }
}
HTML和Javascript:
    <div id="ContentHolder" ><div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
    $.get('Test/MyView', function(view){
        var _contentHolder = document.getElementById('ContentHolder');
       _contentHolder.html(view);
        ko.applyBinding(self, _contentHolder);
    })
    </script>