backbone.js 컬렉션에 몇 가지 특별한 속성이 있습니다. 범위를 벗어나면 콜렉션 상태가 유지되는 것 같습니다.
TestCollection = Backbone.Collection.extend({
properties: {
something: 'foo',
other: 'bar'
}
});
는
test
가 URL
#test
쳤을 때 호출되는 경로라고 말할 : 나는 시도하고 설명하기 위해 간단한 예를 함께했다. 이 메소드가 실행됩니다.
test: function(){
var c = new TestCollection();
console.log(c.properties.something);
c.properties.something = 'changed';
},
그때 다른 해시를 방문하는 경우
이#anythingelse
말을하고
#test
로 돌아가, 콘솔은 여전히 오히려
"foo"
의 값보다
"changed"
를 기록합니다. 컬렉션을 만들 때 상태를 "재설정"해야합니다. 지역 변수가있을 때 국가가 주변에 머무르는 이유는 무엇입니까? 내가 시도하고 일부 속성을 "백업"및 초기화 기능에서 검색 할 수 있습니다
_.clone
같은 몇 가지 시도했다 그러나 나는 아직 성공하지 못했습니다. 나는 단지 내가 완전히 오해하고 있고 간단한 해결책이 있기를 바라고있다.
http://jsfiddle.net/ambiguous/GywKF/ 그냥 모든 여부'인스턴스가 공통'properties' 속성이 깊은 복사 관련이없는이 TestCollection' 지적. 첫 번째 예제에서는'extend'에'properties'를 정의하여'TestCollection.prototype'에 추가하면 TestCollection의 모든 인스턴스에서 단일 참조를 사용할 수 있습니다. 두 번째 예제에서는 TestCollection 인스턴스마다 하나의 참조를 사용할 수 있습니다. – ggozad
@ggozad : 맞아요, OP는'properties'가 복사되지 않을 때 각 인스턴스에 완전히 복사 될 것으로 기대하고 있습니다. 나는 그것을 명확히하려고 노력했다. –