Я до сих пор новичок в Knockout, поэтому я надеюсь, что кто-то сможет мне помочь.KnockoutJS - наблюдаемый объект не определен?
Это мой взгляд модель:
baseModel = {
logged_in : ko.observable(),
alerts : ko.observableArray(),
errors: ko.observable()
};
И в моем HTML у меня есть:
<span data-bind="text: ($root.errors['myerror1'] === undefined)? 'undefined':$root.errors['myerror1']"></span>
Я надеюсь, что тянуть в произвольных объектов с помощью AJAX и назначая его к моему. ошибки. Например, когда мой ответ таков:
Object {myerror1: "password is wrong", error2: "something else is wrong"}
Я ожидаю, что это, чтобы показать ошибку в моем span
, когда я следующий в моем успехе обратного вызова AJAX:
if(response.errors !== undefined)
baseModel.errors = ko.mapping.fromJS(response.errors, {}, baseModel.errors);
ИЛИ,
if(response.errors !== undefined)
baseModel.errors = response.errors;
Не показывает myerror1
, что я связал в HTML. Возможно, я мог бы сделать что-то не так. Я не уверен, что случилось. Благодаря!
Пробовал это. По-прежнему получается 'undefined', где должен быть текст ошибки. Это потому, что '$ root.errors ['myerror1'] === undefined' возвращает' true'? – user1077213
@ user1077213 По-видимому, при использовании значения в выражении вы должны явно получить его значение (используя 'errors()'). Я этого раньше не заметил. См. Обновленный ответ. – mgibsonbr
Ничего себе это действительно блестяще! Благодаря! – user1077213