2016-10-26 8 views
0

각도 1.5의 구성 요소로 앱을 만듭니다. resolve 매개 변수를 통해 구성 요소에 데이터를 제공하므로 같은 구성 요소에있는 다른 소스의 데이터를 표시 할 수 있습니다. 하지만 내 구성 요소의 일부 데이터를 변경하는 방법을 이해하지 못합니다.데이터를 각도 1.5로 변경하는 방법 외부 서비스를 통해 구성 요소를 변경 하시겠습니까?

예를 들어 API를 통해 사용자와 함께 작동하는 사용자 서비스가 있습니다. 내 상태에서 구성 요소를로드하고 Users.get() 메서드를 사용합니다. UI 라우터를 사용합니다.

//... 
$stateProvider 
     .state('users', { 
     url: '/users', 
     component: 'formPage', 
     resolve: { 
      values: function(Users) { 
      return Users.get(); 
      }); 
//... 

//... 
component('formPage', { 
    bindings: { 
    values: '<' 
    }, 
//... 

이 구성 요소에는 양식이 있으며 데이터를 변경하려고합니다. 양식을 제출할 때 Users.update() 메서드를 호출하고 싶습니다. 그러나이 구성 요소는 사용자 서비스에 대해 아무 것도 모르는 것이고 맞습니다.

이 상태의 데이터를 업데이트하려면 해당 구성 요소가 Users.update()를 사용해야한다고 어떻게 지정할 수 있습니까? 양식을 제출할 때 구성 요소에서이 메서드를 호출하는 방법은 무엇입니까?

답변

1
resolve: { 
    values: function(Users) { 
    return Users.get(); 
    }, 
    onUpdate: function(){ 
    return Users.update.bind(Users); 
    } 
); 

bindings: { 
    values: '<', 
    onUpdate: '<' 
}, 

당신은 $ctrl.onUpdate(data).then(...

처럼 호출 할 수 있습니다