未找到knockout.js-ko

未找到knockout.js-ko,knockout.js,Knockout.js,这是我的js文件: function AppViewModel() { this.firstName = ko.observable("Bert"); this.lastName = ko.observable("Bertington"); } ko.applyBindings(AppViewModel()); 这是我的html文件: <html> <head> <script type='text/javascript' src='ko

这是我的js文件:

function AppViewModel() 
{
    this.firstName = ko.observable("Bert");
    this.lastName = ko.observable("Bertington");
}
ko.applyBindings(AppViewModel());
这是我的html文件:

<html>
<head>
    <script type='text/javascript' src='ko.js'></script>
    <script type='text/javascript' src='knockout-2.1.0.debug.js'></script>

</head>
<body>
    <p>First name: <strong data-bind="text: firstName"></strong></p>
    <p>Last name: <strong data-bind="text: lastName"></strong></p>

    <p>First name: <input data-bind="value: firstName" /></p>
    <p>Last name: <input data-bind="value: lastName" /></p>
</body>
</html>
未捕获引用错误:未定义ko

有人能帮我吗


提前感谢

尝试颠倒JavaScript文件的顺序-

<script type='text/javascript' src='knockout-2.1.0.debug.js'></script>
<script type='text/javascript' src='ko.js'></script>

我怀疑ko.js文件试图在主“knockout”js文件中定义ko对象之前访问它。

尝试颠倒JavaScript文件的顺序-

<script type='text/javascript' src='knockout-2.1.0.debug.js'></script>
<script type='text/javascript' src='ko.js'></script>

我怀疑ko.js文件试图在主“knockout”js文件中定义ko对象之前访问该对象。

我的解决方案是将我的ko脚本按上述顺序排列,并在文档加载JQuery或等效的document ready函数后执行任何ko.xyz代码。e、 g

 $(document).ready(function(){
            var model = new ReviewersViewModel();
            ko.applyBindings(model);

            $('.datetimepicker_mask').datetimepicker({
                mask: '9999/19/39 29:59'
            });

            ko.bindingHandlers.datetimepicker = {
                init: function (element, valueAccessor, allBindingsAccessor) {
                    //initialize datepicker with some optional options
                    var options = allBindingsAccessor().datetimepickerOptions || {};
                    $(element).datetimepicker(options);

                    //handle the field changing
                    ko.utils.registerEventHandler(element, "change", function () {
                        var observable = valueAccessor();
                        try {
                            observable($(element).datetimepicker("getDate"));//****
                        }
                        catch (ex) { }
                    });

                    //handle disposal (if KO removes by the template binding)
                    ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
                        $(element).datetimepicker("destroy");
                    });

                },
                update: function (element, valueAccessor) {
                    var value = ko.utils.unwrapObservable(valueAccessor()),
                        current = $(element).datetimepicker("getDate");

                    if (value - current !== 0) {
                        $(element).datetimepicker("setDate", value);
                    }
                }
            };
        });

我的解决方案是将我的ko脚本按上述顺序排列,并在文档加载JQuery或等效的documentready函数后执行任何ko.xyz代码。e、 g

 $(document).ready(function(){
            var model = new ReviewersViewModel();
            ko.applyBindings(model);

            $('.datetimepicker_mask').datetimepicker({
                mask: '9999/19/39 29:59'
            });

            ko.bindingHandlers.datetimepicker = {
                init: function (element, valueAccessor, allBindingsAccessor) {
                    //initialize datepicker with some optional options
                    var options = allBindingsAccessor().datetimepickerOptions || {};
                    $(element).datetimepicker(options);

                    //handle the field changing
                    ko.utils.registerEventHandler(element, "change", function () {
                        var observable = valueAccessor();
                        try {
                            observable($(element).datetimepicker("getDate"));//****
                        }
                        catch (ex) { }
                    });

                    //handle disposal (if KO removes by the template binding)
                    ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
                        $(element).datetimepicker("destroy");
                    });

                },
                update: function (element, valueAccessor) {
                    var value = ko.utils.unwrapObservable(valueAccessor()),
                        current = $(element).datetimepicker("getDate");

                    if (value - current !== 0) {
                        $(element).datetimepicker("setDate", value);
                    }
                }
            };
        });

定义脚本,它是Knockout js library,它包含Knockout预定义方法。

定义脚本,它是Knockout js library,它包含Knockout预定义方法