我有一个主页面,其中包含一些javascript,从主页面加载的局部视图,以及从局部视图页面加载的第二个局部视图。
主页引用了一个javascript源文件,其中包含敲门js,其中包含许多ko.observable。
这些ko.observable按预期用于主页面,但是当模型通过时,它们无法识别局部视图和第二部分视图的值。
是否真的需要在每个视图中引用相同的javascript文件?
答案 0 :(得分:0)
您不需要添加对部分页面的引用,而是首先通过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>