개체 모음이 있지만 이러한 개체에 대한 상위 수준의 정보를 저장하려는 경우 컬렉션에 일부 모델 동작을 추가하는 것이 적절합니까?백본에서 모델 동작을 컬렉션에 추가 할 수 있습니까?
내 경우에는 'curPath'라는 bool 필드가있는 응용 프로그램 경로 모음을 찾고 있습니다. 변경된 경우 컬렉션은 현재 페이지를 나타내는 플래그를 설정해야합니다. 외부 관측자는 경로 수집의 모든 모델이 아닌 하나의 필드 만 관찰하면됩니다. (
var PathModel = Backbone.Model.extend({})
var PathCollection = Backbone.Collection.extend({
initialize: function(){ this.model = PathModel }
})
// I want to be able to set observable properties on the collection, so...
var PathManager = _.extend(Backbone.Model, PathCollection)
// Then maybe I can do something like this?
PathManager.each(function(pathModel){
pathModel.on('change:curPath', function(m, value, o){
// I mean for 'this'.set to point to the instance of the PathManager
if (value === true){ this.set('curPath', pathModel.get('id')) }
}, this)
}, this)
이 콜렉션 (수집 + 모델> 모델)으로 관찰 동작을 추가하는 것이 적절하다, 또는 내가 모든 일에 배치 모델을 추가해야하나요 : 여기
그것이 어떻게 보이는지이다 모델> 컬렉션> 모델), 아니면 다른 해결책이 있습니까?
PathManager 같은 당신이
을 말하는 것을에서 내가 할 줄 경우 뭔가 모델이다. "경로"는 개체 자체의 속성이 아니라 get/set 메서드를 통해 액세스/설정하는 특성이어야합니까? 아니면 그들은 이미 (백본이 단서가 있습니까?) 내가 이해할 수있는 어떤 장점이 있다는 것을 말하는 것은 아닙니다 (예를 들어, 변경 이벤트가 get/set 속성이었을 것이라고 생각하지 않습니다). 나는 다만 정상적인 연습 인 무슨 일하는 것을 시도하고있다? – zod
모델 속성으로 넣지 말고 예제처럼 속성으로 유지하는 것이 좋습니다. 콜렉션/모델을 특성으로 중첩 시키려면 적절한 동기화 등을 위해 백본의 관계형 플러그인에 대해 더 자세히 읽는 것이 좋습니다. –