2012-12-04 2 views
1

현재 배우는 방법으로 자체 JS 프레임 워크를 빌드하려고합니다.변수 할당을 리바 인하는 방법

var myModel = new $n.model.make({ 
    data: { 
     id: _contentID, 
     name: $('#frm_content_name').val() 
    }, 
    route: '/my/path', 
    callback: function(){} 
}); 

만들기() 함수는 간단하다 : 당신이 볼 수 있듯이, 이름 매개 변수가 폼 입력 필드의에 할당

$n.model.make = function(obj){ 

    var self = this; 

    self.data = obj.data; 
    self.route = obj.route; 
    self.callback = obj.callback; 

} 

그래서 같은 새로운 모델을 만들기위한 방법을 만들었습니다 값. UI에서이 입력 필드 값을 변경하면 name 매개 변수가 여전히 입력 필드의 원래 값에 할당되므로 데이터를 DB에 저장하려고하면 아무 것도 변경되지 않습니다.

모델을 설정하고 나면 할당 된 양식 필드에 데이터 매개 변수를 "다시 바인딩하여"최신 정보를 얻는 좋은 방법은 무엇입니까? 댓글에서 언급 한 바와 같이

+1

필드 자체를 참조하도록 개체 속성을 설정 한 다음 필요시 값을 검색하지 않는 이유는 무엇입니까? – nnnnnn

+0

모델에서 참조되는 양식 필드가 20 개 이상있을 수 있습니다. 그것은 일반적인 saveData() 함수 내에서 데이터 정의를 가지고 있고 저장하기 바로 전에 바인딩하는 것이 더 쉬웠습니다. 전용 모델을 가지고있는 것이 내가 그 지점을 놓치지 않는 한, 일을 복잡하게 만든다 고 생각됩니다. – Freddie

답변

0

당신이 할 수 있습니다 : data.name() 항상 최신 정보를 가져 오는 것입니다 호출

data: { 
    id: _contentID, 
    name: function() { 
     return $('#frm_content_name').val(); 
    } 
}, 

. 또 다른 방법은 다음과 같습니다.

data { 
    id: _contentID, 
    name: $('#frm_content_name') 
}, 

이제 data.name.val()으로 전화해야합니다. 개인적으로 나는 누락 된 캡슐화 때문에 이것을 정말로 좋아하지 않습니다.

관련 문제