UI Bootstrap打破angularjs发布请求

时间:2014-09-11 14:00:04

标签: javascript ruby-on-rails angularjs twitter-bootstrap angular-ui-bootstrap

我在角度部分

中有以下内容
<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对象&#34;锦标赛&#34; = {}我猜的是来自我所说的行&#34; $ scope.tournament = data;&#34;,

我使用角度1.2.9,角度路线,角度消毒ui.bootstrap 0.11.0和bootstrap.css。提前谢谢。

编辑:以下是rails控制台日志

给出的发布请求的结果

参数:{&#34;锦标赛&#34; =&gt; {}}不工作时

参数:{&#34; new_name&#34; =&gt;&#34; gwgfwf&#34;,&#34;锦标赛&#34; =&gt; {}}工作时

在尝试大量调试之后,它与在手风琴中创建的子范围有关,而不包括newSchoolName。不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

你对孩子的范围是正确的。

来自this question:&#34; 您需要使用对象而不是原始&#34;

<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 => {}的原因。