2014-05-13 62 views
0

**編輯:我的歉意我的第一個例子並不代表我的代碼。Ng-Repeat內的Ng模型(不是綁定到原始類型問題)

經過數小時的研究和測試,我終於訴諸於此。

問題是:我無法從我的ng-repeat的子範圍內更新我的控制器範圍中的模型。我不是在迭代原語,因爲這似乎是這個問題的常見原因,更多的是,試圖複製我在repl中的問題,我正在做的事似乎工作...任何幫助將不勝感激。

我目前使用的角1.2.16

第一:在plunker

第二工作示例:斷碼

'use strict'; 
angular.module('myApp') 
.controller('myController', [ '$scope', function ($scope) { 

    $scope.object = { 
     description: '', 
     config: { 
      game_type: '' 
     } 
    }; 

    $scope.data = { 
     'game_types': [ 
      {'key': 'meow', 'val': 2}, 
      {'key': 'meow1', 'val': 3}, 
      {'key': 'meow2', 'val': 4} 
     ] 
    }; 
}]); 

HTML //這個SNIPPIT被包裝在一個NG-它只是不包括在內

<div ng-controller="myController"> 
    <div class="row"> 
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
     <h4>Description</h4> 
     <input class="form-control" ng-model="object.description" placeholder="Enter a Description" type="text" /> 
    </div> 
    </div> 
    <div class="row"> 
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
     <h4>Contest Type</h4> 
     <hr> 
     <div class="row"> 
     <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
      <div data-toggle="buttons"> 
      <label ng-repeat="type in data.game_types" class="btn btn-block btn-primary"> 
       <input ng-model="object.description" type="radio" name="game_type" ng-value="type.val">{{ type.key }} 
      </label> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

我也試過了refere直接從ng-repeat內部直接引用父範圍(雖然我不認爲我應該提供我的數據),但無濟於事。

我很困惑。從我所有的研究來看,這應該是完全正確的。而且作爲鏈接,在實踐中工作。

由於我遇到的奇怪現象,我只發佈了一個單獨的問題,並且因爲以前的建議主要圍繞範圍如何工作和綁定到基元,似乎不是問題所在。

非常感謝您的幫助。

回答

1

更新

看起來你只是使用了錯誤的單選按鈕結合。相反,結合object.description,你可能是指綁定到object.config.game_type

<input ng-model="object.config.game_type" type="radio" ng-value="type.val"> 
... 

Here is an update您plunkr,顯示出工作的結合。


老答案

ng-controller只適用於你將它添加到的元素,和任何嵌套的元素。所以,這些都是被覆蓋:

<div class="row" ng-controller="myController"> 
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
    <h4>Description</h4> 
    <input class="form-control" ng-model="object.description" placeholder="Enter a Description" type="text" /> 
    </div> 
</div> 

爲了您的其餘元件的工作,加入到ng-controller周圍的元素,如body

+0

對不起,這是我的錯,我的第一篇文章並不代表我擁有的代碼。 – Orloc

0

Derp。 Bootstrap事件從來沒有切換輸入,因此沒有任何變化。 >。 <

經驗教訓,引導JS和角度不能很好地發揮在一起。使用angular-ui-bootstrap,現在一切都很美妙。