2016-08-04 9 views
0

こんにちは、私はangularjsを初めて使っています。既にjsonからコントローラにビューに読み込まれているものを送ることが可能かどうか疑問に思っていました。 私がしようとしているのは、手紙をコントローラに送り返し、各コントローラのスタイルを変更して間もなくそれらを反復する方法を作成することです。今は、ng-module =ここで、 "シングル" バック間隔コントローラ名にanglejsでjsonを使用してビューからコントローラを変更する方法

が図である。ここ

<!DOCTYPE html> 
<html lang="en-us" ng-app="App"> 
<body ng-controller="mainController" ng-click="textArea = textArea + 1"> 
     <div ng-controller="clickController"> 
<div class="container"> 

      <div ng-controller="intervalController"> 

       <ul class="general_button"ng-repeat="letter in language[0].rows"> 
        <button type="button" ng-model="single += single" class="btn btn-info" ng-repeat="single in letter"> 
         {{single}} 
        </button> 
       </ul> 

       <div > 

        <h1 ng-mousemove="textArea = textArea + 1">Mouse over me!</h1> 

        <label for="inputlg">input-lg</label> 
        <input class="form-control input-lg" id="inputlg" type="text" value="{{ textArea }}"> 
       </div> 

      </div> 
     </div> 


    </div> 
    </body> 
</html> 

は、コントローラは

var App = angular.module('App', []); 
var theLanguage = 'english'; 
App.controller('mainController', function($scope, $http,$log) { 
    $http.get(theLanguage + '.json') 
     .then(function(res){ 
      $scope.language = res.data;     
     }); 
$log.debug('Hello Debug!'); 
}); 

App.controller('intervalController', function($scope, $log) { 
    this.$log = $log; 
    var name = $scope.single; 

    $log.log(name); 
    $log.log('Hello World!'); 

}); 

App.controller('clickController', function($scope) { 

}); 

、ここではJSON

であります
[{ 
    "rows":[[ 
     "a", 
     "e", 
     "u", 
     "i", 
     "o", 
     "y" 
    ], 
    [ 
     "b", 
     "c", 
     "d", 
     "f", 
     "g" 
    ], 
    [ 
     "h", 
     "i", 
     "j", 
     "k", 
     "l" 
    ], 
    [ 
     "m", 
     "n", 
     "p", 
     "q", 
     "r" 
    ], 
    [ 
     "s", 
     "t", 
     "v", 
     "w", 
     "x z" 
    ] 
]}] 

これをより良い方法で行う方法についてのご意見をお寄せいただきありがとうございます。

答えて

1

ng-modelとng-repeatを同じ要素に設定しようとすると悪い考えです。モデルはすでに手紙があります。レターはビューにバインドされているので、ユーザーがレターで変更したものはコントローラーでアクセスできます。あなただけのコントローラ内部の文字の上にinterateその後、

ng-model="single += single" 

を削除し、することができるはずです。

angular.forEach($scope.letter, function(single) { 
    //do something with single 
}); 
+0

私はangular.forEach($のscope.letter、機能(シングル){ $ログを追加してみました。 log(single); });しかし、それは動作していないようでした –

関連する問題