2016-08-17 2 views
2

여러 개의 TextField 행을 동적으로 추가하려는 간단한 양식과 같은 UI를 만들려고합니다. 이 TextField에는 몇 가지 상호 작용이 있기 때문에 (시작, 종료, 기간) XML 및 JS로 맞춤 구성 요소를 만들었습니다.NativeScript UI-Builder

저는 NativeScript의 시동기지만 데이터 바인딩 및 이벤트 구조를 사용하고 있습니다. ui/builder를 통해 내 사용자 정의 구성 요소를 추가 할 수있었습니다. 내가 완전히 붙어있는 곳은이 컴포넌트 인스턴스에 "options/arguments"를 얻는 것이다. 내가 성취하려고하는 것은 : 내 사용자 지정 구성 요소를 추가하고 Obsverable 구성 요소에 채워야하는 일부 데이터를 제공하는 것입니다. 나중에 (저장) 작업에서 "메인"보기에서이 데이터를 검색 할 수 있기를 원합니다.

내 구조가이 같은 것입니다 : 내가 exports.componentModel를 통해 componentModel을 수출하려고

var componentModel = new Observable({ 
    label:  "", 
    start:  "", 
    end:  "", 
    duration: "" 
}); 

exports.onLoad = function(args){ 
    var container = args.object; 
    container.bindContext = componentModel; 
}; 

main.js

exports.loaded = function(args) { 
    var page = args.object; 
    page.bindingContext = model; 

    var outerContainer = page.getViewById('outerContainer'); 

    var vma = builder.load({ 
     path: 'widgets/durationRow', 
     name: 'durationRow' 
    }); 

    outerContainer.addChild(vma); 
}; 

사용자 지정 구성 요소 "durationRow.js"와 main에서 vma.componentModel을 처리하십시오. 그러나 vma는 "JS- 모듈"이 아닌보기입니다. 나는 정말로 붙어있어 내 시나리오와 같은 것을하는 모범을 찾지 못했다.

올바른 방향으로이 사람에게 올바른 (또는 어떤) 방식으로 어떻게 할 수 있습니까?

감사합니다.

+0

해결 했습니까? 나는 비슷한 것을하려고 노력하고있다. – IvRRimUm

답변

1

그래서 그 문제에 대한 답은 아주 간단하다 : 그것에 대해 정확히 사용할 수있는 옵션 attributes가있는 documentation :

를 참조하십시오.

var row = builder.load({ 
    path: 'widgets/durationRow', 
    name: 'durationRow', 
    attributes: { 
     bindingContext: bindingModel 
    } 
}); 
container.addChild(row); 

을 그리고로드 위젯 내 BindingContext를 같은 모델을 "삽입"거야 : 나는이와 결국

exports.onLoad = function(args){ 
    page = args.object; 
    var model = page.bindingContext; 
}; 

난이 도움이되기를 바랍니다!