我无法在我的网站上使用Knockout。当我尝试加载页面时,我的浏览器会给我一个TypeError: ko.observablearray is not a function
我不确定我在这里做错了什么,这是否意味着我的带有淘汰赛的JS文件没有加载,或者我的代码格式是否有问题?
这是我第一次尝试使用淘汰赛,而Javascript一般如此,如果这是一个简单的问题请耐心等待。
这是我的app.js
文件的一个片段,其中引发了错误:
// --- View Model.
function AppViewModel() {
// Setting This
var self = this
// Declaring Observables
this.locationInput = ko.observable("");
this.locationList = ko.observablearray([]);
以下是我加载脚本的方法:
<script src="./js/knockout.js"></script>
<script src="./js/jquery.min.js"></script>
<script src="./js/app.js"></script>
我没有得到什么?我对Python更熟悉,这个错误在我看来就像我没有导入模块一样,如果我使用python。我不知道这是必要的Javascript;我是否需要声明才能使用Knockout?再次感谢您的帮助。
答案 0 :(得分:1)
observableArray
var myObservableArray = ko.observableArray(); // Initially an empty array
myObservableArray.push('Some value'); // Adds the value and notifies observers
http://knockoutjs.com/documentation/observableArrays.html
如果你已经使用了
var self = this;
以下声明可直接引用self
。
// Declaring Observables
self.locationInput = ko.observable("");
self.locationList = ko.observablearray([]);
当您想在函数或计算对象中使用上述对象时,这将非常有用。它将有助于指出正确的参考。例如:
self.getLocation = function(data, event){
return ko.utils.arrayFirst(self.locationList(), function(location) {
return location.toLowerCase() === data.toLowerCase();
});
};