0

У меня есть следующие в угловом частичномUIBootstrap нарушение запроса angularjs пост

<h1>{{tournament.name}}</h1> 
<accordion close-others="true"> 
    <accordion-group> 
     <accordion-heading> 
      <p>Schools</p> 
     </accordion-heading> 
     <input ng-model="newSchoolName" placeholder="new school name"> 
     <button class="btn-sm" ng-click="addNewSchool()" ng-disabled="!newSchoolName">Add New School</button><br/> 
... 

и следующее в моем контроллере

tournamentControllers.controller("ConsoleController",['$scope','$http', function($scope, $http){ 

$scope.update = function(){ 
    console.log("update"); 
    $http({method:'GET', url: '/tournament/console_api'}). 
     success(function(data,status,headers,config){ 
      $scope.tournament = data; 
     }).error(function(data,status,headers,config){ 
      console.log("error"); 
    });//Initial schools 
}; 
$scope.update(); 
$scope.addNewSchool = function(){ 
    $http.post('/tournament/add_school',{ 
     new_name : $scope.newSchoolName 
    }).success(function(data,status,headers,config){ 
     $scope.tournament = data; 
    }).error(function(data,status,headers,config){ 
     console.log("error"); 
    }); 
}; 

Если я закомментируйте ui.bootstrap части (но не удалите их), он отлично работает, но если я оставлю их, он отправит пустой объект JSON «турнир» = {}, который, как я предполагаю, исходит из строки, где я говорю «$ scope.tournament = data;»,

Я использую угловой 1.2.9, угловой маршрут, угловой санируют ui.bootstrap 0.11.0 и bootstrap.css. Заранее спасибо.

EDIT: Вот результаты запроса пост, приведенные бревнами Рельсы консоли

Параметры: { "турнир" => {}}, когда не работает

Параметры: { "NEW_NAME" = > «gwgfwf», «турнир» => {}} при работе

После попытки много отладки это связано с созданной внутри аккордеона дочерней областью и не включая newSchoolName. Не знаю, как это исправить.

+1

Вы говорите, что ваш запрос «POST» нарушен. Не могли бы Вы уточнить ? Ваш код показывает, что вы будете публиковать '{new_name: $ scope.newSchoolName}', а не 'турнир = {}', который является частью вашего обратного вызова. Не могли бы вы предоставить скриншот консоли, когда вы нажимаете кнопку, чтобы добавить школу? – Goodzilla

+0

Я добавил то, что показывает консоль рельсов, и что я думаю, что проблема –

ответ

1

Вы были прав насчет детского охвата.

От this question: "Вы должны использовать объект вместо примитивного"

<input ng-model="school.newSchoolName" placeholder="new school name"> 
<button class="btn-sm" ng-click="addNewSchool()" ng-disabled="!school.newSchoolName">Add New School</button><br/> 

и:

$http.post('/tournament/add_school',{ 
    new_name : $scope.school.newSchoolName 
} 

Не забудьте объявить $scope.school:

$scope.school = {newSchoolName: ''}; 

Я до сих пор не понимаю, почему вы заканчивается tournament => {}.

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