Параметр функции не определен в knockout.js
Я использую шаблон модуля раскрытия, чтобы получить некоторую структуру в моем коде knockout.js. Это очень простая примерная цель: вернуть значение свойства Name объекта. Проблема: параметр функции x не определен.
http://jsfiddle.net/ThomasDeutsch/8hzhp/
В чем именно проблема здесь? Помогите мне разобраться с этим, пожалуйста.
2 ответа
У меня есть решение. Проблема заключалась в том, что я не определил функцию. ko.computed не будет делать эту работу. Итак, вот решение: Knockout.js: параметр функции undefined
Возможно, вам следует написать
x.Name
вместо
x.getElementsByName('Name')
поскольку я не вижу, откуда x должен получить этот метод, так как x не является элементом дерева документа. Но я не эксперт в этом.
Хорошо, это работает для меня:
// My Model
function Customer(id, name, lastname) {
this.Id = ko.observable(id);
this.Name = ko.observable(name);
this.LastName = ko.observable(lastname);
}
// My ViewModel
ViewModel = (function () {
var customer = new Customer(1, "Thomas", "D")
var getName = ko.computed(function () {
return customer.Name ();
})
;
return {
getName: getName
};
})();
ko.applyBindings(ViewModel);
GetName в операторе return должен быть функцией, а не результатом функции. Вероятно, фреймворк (который я не знаю) вызывает функцию (без аргументов), чтобы получить значение.