2014-09-23 2 views
0

각도가있는 앱을 개발 중이며 편집 페이지에서 개체 변수에 대해 몇 가지 계산을 수행하고 싶습니다.함수의 범위 데이터 변경

예를 들어 내 명제 (객체)를 얻었을 때 페이지로드시 proposition.marge_theoriqueproposition.marge_theorique= 2 * proposition.marge_grille과 같이 설정하고 싶습니다.

먼저 API를 사용하여 객체를 가져온 다음 함수를 호출해야합니다. calcul()은 수학을 수행해야합니다.

내 문제는 calcul이 $ scope.proposition을 변경하는 방법을 알지 못한다는 것입니다. 여기

나는 또한이 방법을 시도한

'use strict'; 

var app = angular.module('app', []); 

app.controller('propositionCtrl',['$scope', 'propositionRepository', '$http', 
    function ($scope, propositionRepository, $http) { 
     // $scope.proposition = { marge_propose: 3 }; 



     //////////////////////////////DEFINITIONS//////////////////////////////////// 
     $scope.submit = function() { 
      $http.put('/api/propositionapi', $scope.proposition); 
     } 




     function getProposition() { 
      propositionRepository.getProposition(function (result) { 
       $scope.proposition = result; 

      } 
      ) 
     } 

     function calcul(contexte) { 
      contexte.proposition.marge_theorique = contexte.proposition.marge_grille * 2; 
     } 

     ///////////////////////////////UTILISATION/////////////////////////////////// 
     console.log("on est dans la page"); 
     getProposition(); 
     calcul($scope); 
; 
    }]) 

app.factory('propositionRepository', function ($http) { 
    return { 
     getProposition: function (callback) { 
      $http.get('/api/propositionapi/3').success(callback); 
     } 
    } 
}) 

내 코드입니다

 function calcul() { 
      $scope.proposition.marge_theorique = $scope.proposition.marge_grille * 2; 
     } 

후 바로 calcul()를 호출하지만

... 중 하나가 작동하지 않습니다 어떻게해야합니까?

고맙습니다.

답변

1

전화가 비동기 인 경우 응답을 사용할 수있을 때까지 기다려야합니다. 콜백을 사용할 수 있습니다. getProposition 함수를 업데이트하십시오.

function getProposition() { 
      propositionRepository.getProposition(function (result) { 
       $scope.proposition = result; 
       calcul($scope); 
      }) 
     } 

그리고 작동

+0

감사 컨트롤러의 끝에서 getProposition(); 후에 수행 전화 calcul($scope);를 제거! 사용자가 편집 페이지에서 proposition.marge_grille 값을 변경하면 calcul을 호출해야합니다. 나는 그것을하는 법을 모른다 ... – Krowar

+0

나는 당신에게 애플 리케이션의 구조에 대해 모른다. 그러나 각진 시계를 보라. 모델 변경 사항을 추적하고 이벤트 핸들러를 트리거 할 수 있습니다. – Chandermani