[英]How can I access an existing javascript object passed back by RequireJS from a PartialView
使用ASP.NET MVC,KnockoutJS和我正在使用Require JS。
我有一个观点,我正在传回一个保留2个Knockout视图模型的对象。 为简单起见,父视图是项目列表。 您可以单击相应的按钮来创建新产品或在列表中进行编辑。 每个按钮都会初始化一个jQuery对话框,该对话框是通过从我的控制器获取返回的PartialView来填充的。
检索局部视图时,我将Knockout View模型(原始返回的RequireJS对象的属性)绑定到该局部视图。 创建新产品,采用KO视图模型并将其保存回控制器操作时,我没有任何问题。
问题
尝试将现有产品加载到PartialView时出现问题。 我需要能够用初始值填充KO viewModel。 一个可能的解决方案是,如果我可以将MVC视图模型从控制器传递到我现有的RequireJS对象中,则可以使用现有的属性值初始化KO视图模型。 但是,我不知道如何在我的partialview视图中访问产品列表视图上现有的返回的javascript对象。
我可以在传入的局部视图上获取MVC模型的唯一错误方法是,如果我在局部视图上连接Require JS并传递回该对象的新实例并传递MVC模型,但这会破坏当前jQuery对话框调用返回到原始对象。
例:
父产品列表视图
......bunch of html
</li>
</ul>
</div>
@{
<script type="text/javascript">
require(['jquery', 'items/adminItemsList', 'jquery-validate-unobtrusive' ], function ($, viewModel) {
$(function () {
viewModel.initialize({
addUrl: '@Url.Action("Add")',
listUrl: '@Url.Action("List")',
editUrl: '@Url.Action("Edit")',
deleteUrl: '@Url.Action("Delete")'
});
});
});
}
jQuery对话框PartialView
....bunch of Html
</div>
</div>
<script type="text/javascript">
viewModel.Model(@Html.Json(Model)) //I need to be able to do something like this
</script>
Json方法只是HtmlHelper扩展。
如何将返回的RequireJS对象设置为可访问的,或者设计此方法的更好方法是什么。
我有并且需要:
有什么想法吗?
我最终要做的是拆分我的ViewModel(因为实际上有两个不同的视图),并且在一个我需要传递呈现的MVC Model对象的ViewModel上,我将其设置为ViewModel的可访问公共属性,以便可以对其进行访问并由另一个ViewModel的共享组件序列化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.