teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

追記

2017/04/10 07:58

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -48,6 +48,8 @@
48
48
  alertをクリックすると、それぞれの要素の値がalertされます。
49
49
  こんな感じのことをしたいのではないかと思っていますがいかがですか。コードはかなり簡略に記載しましたが解説は必要ですか。
50
50
 
51
+ ng-repeat="item in tC.items"というところがポイントで、items配列の中の要素であるitemがng-repeat内で自由に使うことができるようになっています。
52
+
51
53
  ![イメージ説明](ca4061f88c9469039725607b856b12ff.jpeg)
52
54
 
53
55
  ```HTML

5

画像追加

2017/04/10 07:58

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -48,6 +48,8 @@
48
48
  alertをクリックすると、それぞれの要素の値がalertされます。
49
49
  こんな感じのことをしたいのではないかと思っていますがいかがですか。コードはかなり簡略に記載しましたが解説は必要ですか。
50
50
 
51
+ ![イメージ説明](ca4061f88c9469039725607b856b12ff.jpeg)
52
+
51
53
  ```HTML
52
54
  <body>
53
55
  <div ng-controller="testController as tC">

4

追記

2017/04/10 07:56

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -37,4 +37,50 @@
37
37
  app.controller("testController", function(){
38
38
  this.values = [0,1,2]
39
39
  });
40
- ```
40
+ ```
41
+
42
+ ※追記
43
+
44
+ 不定の要素を画面上で追加し、それぞれの要素をalertする処理
45
+
46
+ 上のインプットに値を入力し、pushボタンを押すと、値がJavaScript上で追加されていきます。
47
+ 同時に、pushボタンの下に入力した値+alertというボタンが出てきます。
48
+ alertをクリックすると、それぞれの要素の値がalertされます。
49
+ こんな感じのことをしたいのではないかと思っていますがいかがですか。コードはかなり簡略に記載しましたが解説は必要ですか。
50
+
51
+ ```HTML
52
+ <body>
53
+ <div ng-controller="testController as tC">
54
+
55
+ <p><input type="text" ng-model="tC.value"></p>
56
+ <p><input type="button" value="push" ng-click="tC.addValue()"></p>
57
+
58
+ <div ng-repeat="item in tC.items">
59
+ <p>{{item.value}}<input type="button" value="alert" ng-click="tC.alertValue(item)"></p>
60
+ </div>
61
+ </div>
62
+ </body>
63
+ ```
64
+ ```JavaScript
65
+ var app = angular.module(app, []);
66
+
67
+ app.controller("testController", function(){
68
+
69
+ this.value = null;
70
+
71
+ this.items = [];
72
+
73
+ this.addValue = function(){
74
+
75
+ item = {value: this.value}
76
+
77
+ this.items.push(item);
78
+ }
79
+
80
+ this.alertValue = function(item){
81
+ alert(item.value);
82
+ }
83
+
84
+ });
85
+ ```
86
+

3

追記

2017/04/10 07:54

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -20,6 +20,8 @@
20
20
  ※追記
21
21
 
22
22
  ng-repeatの使い方の例です。
23
+ この例では要素数は不定ではありませんが、要素数が増えるとその分HTMLに要素が増えていきます。
24
+ それぞれの要素に対してng-modelも使えます。
23
25
 
24
26
  ```HTML
25
27
  <div ng-controller="testController as tC">

2

ng-repeatについて追記

2017/04/10 03:45

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -15,4 +15,24 @@
15
15
  .controller("testController",function(){
16
16
  this.value = "a";
17
17
  }
18
+ ```
19
+
20
+ ※追記
21
+
22
+ ng-repeatの使い方の例です。
23
+
24
+ ```HTML
25
+ <div ng-controller="testController as tC">
26
+ <div ng-repeat="value in tC.values">
27
+ <p><input type="text" ng-model="value"></p>
28
+ </div>
29
+ </div>
30
+ ```
31
+
32
+ ```javascript
33
+ var app = angular.module(app, []);
34
+
35
+ app.controller("testController", function(){
36
+ this.values = [0,1,2]
37
+ });
18
38
  ```

1

追記

2017/04/10 03:43

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -1,6 +1,10 @@
1
1
  ng-modelはcontrollerのプロパティをあたかもHTMLに紐づいているように同期させる機能です。
2
2
  JavaScriptでプロパティを設定し、HTMLでどのタグにどのプロパティが紐づくのかを設定します。このときに、HTML側のタグに記載するのがng-modelです。
3
3
 
4
+ もしjs側で作る要素に対してng-modelを使いたいということであれば、作る要素をHTMLのタグにあらかじめ設定しておけば良いかと思います。
5
+
6
+ 意図に沿った回答でしょうか。
7
+
4
8
  ```HTML
5
9
  <div ng-controller="testController as tC">
6
10
  <input ng-model="tC.value">