이 문제에 대해 혼란스러워합니다. 녹아웃은 ko.applyBindings()
메서드를 사용하여 MVVM 패턴을 업데이트합니다. 아래 코드에서 내 기능을 볼 수 있습니다. 먼저 비어있는 vm을 만든 다음 getJSON()
메서드를 통해 데이터를 채우는 다른 함수를 호출합니다. 메소드가 잘 작동합니다. 내 혼란은 여기서 시작녹아웃 기능에서 관찰 가능 액세스
var vm = {};
function GetData(){
vm=GetMockData();
LoadUserData();
LoadCategories();
LoadSkills();
return vm;
}
, 내 작업은 사용자의 입력에 따라이 값을 저장하는 것입니다.
<input data-bind='' placeholder="Enter your name"/>
상위 HTML 섹션에서 해당 값을 원하는대로 바인딩하고 싶습니다. GetMockData().obj.User.Name
. 하지만 일하지 않아.
function GetMockData(){
var obj={
User:{
Name: ko.observable().extend({
required: true,
minLength: 2,
maxLength: 15
}),
Surname: "Fake Surname"
}
return obj;
}
그리고 applyBindings()
에 대해서는 아래 코드 섹션을 호출합니다.
ko.applyBindings(new GetData());
아래 부분에서는 혼란 스럽습니다. 어떤 함수에서 User.Name
을 얻으려면 다른 함수에서 호출해야합니다. 왜냐하면 그 부분을 applyBindings()
이 아닌 다른 함수에서 직접 전달하기 때문입니다. 데이터 바인딩 값을 HTML에 쓰려면 어떻게해야합니까?
<input data-bind='' placeholder="Enter your name"/>
더 표준 (클래스) 패턴을 사용하여 뷰 모델을 초기화해야합니다. 현재, 전역 변수를 돌연변이시키고 반환하기 때문에'new' 키워드를 사용할 필요가 없습니다. 그 외 : 바인딩 컨텍스트는'vm'입니다. 즉, 데이터 바인딩은'data-bind = "textInput : User.Name"' – user3297291
입니다. 나는 당신이 말한 것과 같이 완벽하게 작동했습니다. –