2017-03-21 34 views
0

我在使用Knockout与我的网站时遇到问题。当我尝试加载我的页面我的浏览器给我一个TypeError: ko.observablearray is not a functionTypeError:ko.observable数组不是函数

我不知道我在做什么错误在这里,这是否意味着我的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,是否需要声明?再次感谢任何帮助。

+1

我想也许你只需要在observableArray中大写数组。 heh –

+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

大写的A和如果你已经使用

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(); 
    }); 
}; 
+0

哇,我知道这很简单,我不能相信我错过了。谢谢! – NoOrangeJuice