2016-03-22 2 views
-1

У меня эти две функции. Мне нужно передать значение ответа $ scope.submit в $ scope.addTeams. Это работает, но я знаю, что это действительно глупый подход. Каков наилучший подход?

\t $scope.submit = function() { 
 
\t $http.post('/api/createclub/', { 
 
\t  club: $scope.club 
 
\t }).success(function(response) { 
 
\t  console.log(response); 
 
\t  $rootScope.clubId = response._id; 
 
\t }); 
 
\t }; 
 

 
\t $scope.addTeams = function() { 
 

 
\t console.log($rootScope.clubId); 
 

 
\t $state.go('createTeam', { 
 
\t  clubId: $rootScope.clubId 
 
\t }); 
 
\t $scope.cancel(); 
 
\t };

+0

То, что вы делаете, будет работать, однако addTeams не будет иметь clubId, если он не вызывается до тех пор, пока сообщение не будет завершено. Это состояние гонки, что я не вижу легкого выхода из небольшого количества предоставленного кода. –

+0

Да, что я понимаю. Чтобы предоставить вам больше информации о том, чего я пытаюсь достичь, у меня есть две разные кнопки, которые запускают эти функции. –

+0

Отключите один, пока другой не будет завершен, или не превратите их в одну кнопку. –

ответ

0

Просто позвоните вашу функцию addTeams в вашем $ обработчика HTTP POST ответ, передавая значение идентификатора вы в настоящее время установки на rootScope

То, что вы не должны действительно сделать, это установить свойства, как это на rootScope

+0

Я пробовал этот подход, но $ scope.addTeams() запускается с помощью ng-click. Однако, следуя этому подходу, функция $ scope.addTeams() вызывается и состояние изменяется, что в принципе не должно. –

3

Что случилось с

$scope.submit = function() { 
     $http.post('/api/createclub/', { 
     club: $scope.club 
     }).success(function(response) { 
     console.log(response); 
     $scope.addTeams(response._id); 
     }); 
    }; 

    $scope.addTeams = function(id) { 

     $state.go('createTeam', { 
     clubId: id 
     }); 
     $scope.cancel(); 
    }; 
+0

Нет ничего плохого в этом. Я тоже пробовал это, но $ scope.addTeams() запускается с помощью ng-click. Однако, следуя этому подходу, функция $ scope.addTeams() вызывается и изменяется состояние, которое не должно –

+0

. Я не уверен, что я следую. Вы используете submit AND addTeams нажатием кнопки? – Wainage

+0

Похоже, они на двух разных пуговицах ?! – mindparse

Смежные вопросы