Javascript作用域问题-变量未定义
Javascript scope issue - variable is undefined
我对此有点困惑,因为我确信所有变量在运行前都被带到javascript的"顶部",然后从那里处理。
所以我的错误
TypeError: hutber.portfolio.ko is undefined
[Break On This Error]
items: ko.observableArray(hutber.portfolio.ko.data),
(function ($) {
"use strict"; //For good development standards :)
hutber.portfolio = {
init: function(){
e(typeof(hutber));
hutber.portfolio.changeOptionsBoxHeight();
//Bind the height resize in window resize
$(window).resize(function(){
hutber.portfolio.changeOptionsBoxHeight();
});
//start KO
hutber.portfolio.ko.init();
},
changeOptionsBoxHeight: function(){
var height = $(window).height();
$('.portfolio--options').height(height-400);
}
};
hutber.portfolio.ko = {
init: function(){
ko.applyBindings(new hutber.portfolio.ko.portfolioViewModel());
},
data: [],
items: ko.observableArray(hutber.portfolio.ko.data),
portfolioViewModel: function(){
hutber.portfolio.ko.items = ko.observableArray(hutber.portfolio.ko.data);
$.getJSON('/js/pages/portfolio.json').done(function(info){
hutber.portfolio.ko.data = info;
hutber.portfolio.ko.items (hutber.portfolio.ko.data);
});
}
};
hutber.portfolio.init();
})(jQuery);
我真的想把这个上传到小提琴,但出于某种原因,我在他们的网站上得到js错误。我想我的防火墙阻止了某些文件加载。
运行ko.observableArray(hutber.portfolio.ko.data)
时,hutber.portfolio.ko
还没有定义。
你可以这样处理:
hutber.portfolio.ko = {
init: function(){
ko.applyBindings(new hutber.portfolio.ko.portfolioViewModel());
},
data: [],
portfolioViewModel: function(){
hutber.portfolio.ko.items = ko.observableArray(hutber.portfolio.ko.data);
$.getJSON('/js/pages/portfolio.json').done(function(info){
hutber.portfolio.ko.data = info;
hutber.portfolio.ko.items (hutber.portfolio.ko.data);
});
}
};
hutber.portfolio.ko.items = ko.observableArray(hutber.portfolio.ko.data);
但此时hutber.portfolio.ko.data
始终是[]
。因此,您不妨将ko.observableArray([])
放在原始代码中。
猜猜看:因为你在声明变量之前访问了它?
相关文章:
- Javascript变量未定义,onchange不起作用
- 定义的变量未定义
- 无法弄清楚为什么本机 Promise 变量未定义
- Windows 8 Javascript 疯狂 - 变量未定义
- $rootScope变量未定义
- 变量未定义
- Javascript:TypeError变量未定义
- 变量未定义/超出范围
- javascript变量未定义
- Javascript变量未定义错误
- $scope变量未定义,尽管它是在$watch函数内部设置的
- 类型错误:变量未定义
- AngularJs $http变量未定义
- JQuery:创建扩展返回变量未定义
- d3.js变量未定义,但在Firefox控制台中,它可以工作
- Javascript 中用于上传表单数据的变量未定义
- 节点.js模块级变量未定义
- Node.js req.session 变量未定义
- 错误:AngularJs 变量未定义,当使用 grunt 运行时.(泽泽尔)
- 将字符串拆分为两个变量 - 未定义不是一个函数