나는 아직 녹아웃에 익숙하지 않아 누군가가 나를 도와 줄 수 있기를 바라고있다.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를 통해 임의의 객체에 끌어 희망 내에 할당하고있다. errors 속성. 예를 들어, 내 대답은 다음과 같습니다
if(response.errors !== undefined)
baseModel.errors = ko.mapping.fromJS(response.errors, {}, baseModel.errors);
OR,
을 : 나는 내 AJAX 성공 콜백에서 다음 작업을 수행 할 때Object {myerror1: "password is wrong", error2: "something else is wrong"}
나는 내 span
에서 오류를 보여 기대
if(response.errors !== undefined)
baseModel.errors = response.errors;
어느 쪽도 HTML에 바인딩 된 myerror1
을 표시하지 않습니다. 나는 아마도 여기에서 많은 것들을 잘못하고있을 수 있습니다. 나는 틀린 것이 확실하지 않다. 감사! 새 값으로 errors
관찰을 업데이트하려는 경우
시도해 보았습니다. 오류 텍스트가 있어야하는 곳은 여전히'undefined '가됩니다. 왜냐하면'$ root.errors [ 'myerror1'] === undefined'가'true'를 리턴하고 있기 때문입니다. – user1077213
@ user1077213 분명히 표현식에서 값을 사용할 때 ('errors()'를 사용하여) 값을 명시 적으로 가져와야합니다. 나는 처음에는 그것을 알아 채지 못했습니다. 업데이트 된 답변을 참조하십시오. – mgibsonbr
와우 이것은 정말 탁월합니다! 감사! – user1077213