내가 항상 모델 저장소를 상관없이 입력 소문자의 이름을 제공 할 수있는 방법을 찾기 위해 노력하고있어Backbone.js - 사용자 정의 세터
window.model= Backbone.Model.extend({
defaults:{
name: "",
date: new Date().valueOf()
}
})
같은 간단한 백본 모델을 상상해보십시오. 즉,
model.set({name: "AbCd"})
model.get("name") // prints "AbCd" = current behavior
model.get("name") // print "abcd" = required behavior
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
- 재정이 기본 모델에 변화를 수신하고 소독 입력을 저장하는 "설정"방법
- 사용에 "SantizedModel"여기에 내가 생각할 수있는 전부입니다. 모든 뷰 코드는 대신이 새 니타 이징 된 모델을 전달합니다.
내가 언급 한 특정 "소문자로의"예는 기술적으로보기를 검색하는 동안 기술적으로 더 효율적일 수 있지만, 예를 들어 사용자가 파운드로 값을 입력하는 경우와 다른 경우를 상상해보십시오. 내 데이터베이스의 $ s. 동일한 모델에 대해 다른 견해가있을 수 있으며 "toLowerCase"를 사용하고 싶지는 않습니다.
생각하십니까? 이 그것을 위해 만들어진되지 무엇 때문에
감사합니다. 나는 이것 역시 고려했다.하지만 이것은 set 함수를 재정의하거나 소문자로 설정하고 백본 집합으로 전달하는 새로운 "setProperty"함수를 추가하는 것이 더 읽기 쉬울만큼 뒤떨어져있는 것처럼 보인다. 내가 놓친 게 아니라면? – Naren
'set' 메소드를 오버라이드 (override) 해, 설정을 끝내기 위해서 (때문에) 얻을 수있는 것은 없습니다. 세트 전의 몇개의 전처리는? 'Backbone.Model.prototype.set'을 확장하여 일부 전 처리기를 호출 할 수도 있습니다. 일치하는 경우 ... https://gist.github.com/1310972 –
유효성 검사는 save 메소드에서만 호출됩니다 또는 options.validate = true가 설정된 경우 (침묵 여기에 사용되지 않지만 대답은 꽤 오래된) 루프 대신 – webstrap