繁体   English   中英

如何在视图中包括在单独的javascript文件中定义的剔除视图模型?

[英]How do I include knockout viewmodel defined in separate javascript file in my view?

我是使用剔除的新手,我创建了一个视图模型,该视图模型最初在我的视图中使用,并在我输入文本框时更新了文本,但是在将剔除视图模型从视图移至单独的javasctipt文件并将其包含在其中之后在脚本标签中引用该视图的视图未应用敲除绑定。 我还需要做什么? 我该如何工作? 我不想在每个引用淘汰赛的视图中都具有脚本标签,并且不想在视图中定义视图模型,我希望视图模型位于单独的文件中。

这是我将视图模型包含在脚本标记中时起作用的视图模型 我已经将其移动到名为UserDashboardViewModel.js的单独文件中,并将其包含在我的视图中,但是在单独文件中,仅当包含在视图中时,它才起作用:

var viewModel = {
    monkey: ko.observable(),
    array: ko.observableArray(),
    AddAnimal: function () 
    {
        this.array.push(this.monkey());
    }
};

ko.applyBindings(viewModel);

在我看来:

<script type='text/javascript' src='~/Scripts/knockout-3.4.0.js'></script>
    <script type='text/javascript' src='~/Scripts/UserDashboardViewModel.js></script>

<h1 data-bind="text: monkey">text</h1>
... other knockout data-bindings that do not work

如果脚本标记位于HTML页面的head ,则需要确保在加载DOM时调用ko.applyBindings()

// with jQuery 
$(document).ready(function(){ko.applyBindings(viewModel); });

// shorter jQuery version 
$(function(){ ko.applyBindings(viewModel); });

// without jQuery (doesn't work in older IEs)
document.addEventListener('DOMContentLoaded', function(){ 
    ko.applyBindings(viewModel);
}, false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM