0

Я использую шаблон раскрывающегося модуля, чтобы получить некоторую структуру в моем коде knockout.js. Это очень простой пример Цель: вернуть значение свойства Name-Object объекта. Проблема: параметр функции x не определен.параметр функции undefined in knockout.js

http://jsfiddle.net/ThomasDeutsch/8hzhp/

Что именно здесь проблема? Помогите мне с этим разобраться.

+0

Решение: http://stackoverflow.com/questions/10873214/knockout-js-function-parameter-undefined –

ответ

0

У меня есть решение. Проблема заключалась в том, что я не определил функцию. ko.computed не будет выполнять эту работу. Так что это решение: Knockout.js: Function parameter undefined

1

Может быть, вы должны написать

x.Name 

вместо

x.getElementsByName('Name') 

, так как я не вижу, где х должен получить этот метод из, так как х не является элементом дерева документа. Но я не эксперт в этом.

Хорошо, это работает для меня:

// 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 в ответном заявлении должно быть функцией, а не результат функции. Вероятно, фреймворк (который я не знаю) вызывает функцию (без аргументов), чтобы получить значение.

+0

Спасибо, но это не помогает. Проблема в том, что x не определено - и я не знаю почему. Btw. x.Name вернет наблюдаемую функцию. x.Name(), возможно, правильный вызов. –

+0

Я отредактировал свой ответ. Может быть, вам это помогает. – JohnB

+0

Это было мое решение. Чем я хотел иметь более многоразовый код, поэтому я переместил клиента из функции и заменил его свойством x. поэтому я могу использовать каждый объект с именем-Свойством для использования этой функции. Это лучшая практика, которую мне нужно иметь. –