我使用Knockout.js,我的脚本中有一个名为letter
的对象。该代码如下所示:
function letter(filePath, imagePath, countryId) {
self.filePath = filePath;
self.imagePath = imagePath;
self.countryId = countryId;
}
然后,在我的代码中的另一个地方,以下代码段运行:
var uploadedLetter = new letter(data.key,'',59);
viewModel.letters.push(uploadedLetter);
我知道我的data.key是一个普通的字符串值。
我的viewModel代码是这样的:
var SendWindowedLetterViewModel = function(formSelector, data) {
var self = this;
self.letters = ko.observableArray([]);
}
在我的观点上应用绑定:
var createLetterData = {
};
var viewModel = new SendWindowedLetterViewModel('#sendLetterForm', createLetterData);
ko.applyBindings(viewModel, document.getElementById('sendLetterForm'));
但是,当我在运行此行后查看FireBug时,我有以下输出:
我无法访问我的任何属性,如果我在FireBug中查找对象,它似乎是100%为空。
可能是StackOverflow上有史以来最简单的问题,但我在这里忽略了什么?
答案 0 :(得分:1)
在letter
中,您使用self.filePath = filePath
但self
并未在其范围内的任何位置定义。
所以你要么
function letter(filePath, imagePath, countryId) {
var self = this;
self.filePath = filePath;
self.imagePath = imagePath;
self.countryId = countryId;
}
或直接
function letter(filePath, imagePath, countryId) {
this.filePath = filePath;
this.imagePath = imagePath;
this.countryId = countryId;
}