2014-07-18 1 views
0

가로 및 세로 창 분할자를 만들 때이 https://github.com/blackgate/bg-splitter을 사용하고 있습니다. (전체 코드는 내가 작성한 플 런크에 있습니다.)컨트롤러에 양방향 바인딩이있는 각도 변환 된 지시문이 업데이트되지 않음

컨트롤러를 사용하기 시작한 이래 컨트롤러와 지시문의 양방향 바인딩 문제가 있습니다.

지향성 두 변수에 listData 및 selectedOption 가지고

template: '<select ng-model="selectedOption" ng-options="l.name for l in listData" class="form-control"></select>', 
    scope: { 
     listData: "=", 
     selectedOption: "=" 
    }, 

컨트롤러는 이러한 변수가 변화를 감시하는 감시 기능을 가지고

$scope.listdata = [{id : 1, name : "listitem1"},{id : 2, name : "listitem2"},{id : 3, name : "listitem3"}]; 

$scope.selectedOption = null; 

$scope.$watch('selectedOption', function() { 
     console.log('updating selected choice'); 
     console.log($scope.selectedOption); 
}, true); 

및 지향성이 사용되고을 like :

<dropdown list-data="listdata" selected-option="listItem"></dropdown> 

방울 없음 스플릿 드롭 다운입니다. 왕. 어떤 이유에서, 바인딩 된 변수가 드롭 다운 지시문에서 업데이트 될 때 컨트롤러에서 업데이트되지 않습니다. 이것은 아마 범위 문제이지만, 나는 그것을 스스로 알아낼 수 없습니다. 어떤 도움이라도 대단히 감사합니다. 전체 코드는 다음 plunkr를 참조하십시오

http://plnkr.co/edit/UnJaPV8LYm3unILEU3Lq

+0

$scope.$watch('data.listItem', function() { console.log('updating selected choice'); console.log($scope.data.listItem); }, true); 

변화에

HTML을, HTTP를 살펴 : //stackoverflow.com/a/14049482/957731 – ivarni

+0

흠. 그러나 transcluded 지시문과 dropdown 지시문은 모두 부모 범위로 컨트롤러 범위가 격리 된 범위를 가집니까? 내가 이것을 시험해 볼 수 있는지 보도록하겠습니다. –

+0

나는 그것을 시험해 보려고했지만 코드가 많았고 인내심이별로 없었기 때문에 또 다른 문제 일 수 있습니다. 나는 아직도 생각할 가치가있다. 그 연결된 대답은 상관없이 아주 좋은 읽기입니다. – ivarni

답변

1

유명한 견적을 기억하십시오. "당신이를 사용하지 않는 경우 (점) 당신의 모델이 잘못을하는거야?" 이에 시계 변경하는 경우 : 다음은이

<dropdown list-data="listdata" selected-option="data.listItem"></dropdown> 

이 원형 상속 문제 같은 소리 Plunker

+0

굉장합니다. 방금이 인용문이 나오는 비디오를 보았습니다. 나는 그것을 잊지 않을 것이라고 생각합니다.). 새로운 것을 많이 배운 후에는 언제나 기본으로 돌아가는 것이 현명합니다. 감사! –

+0

감사합니다. 이것은 나의 문제점을 또한 해결했다. 중첩 된 객체로 항목을 추가해야하는 사람에게는 이상한 것처럼 보입니까? – Chris