簡體   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