\r\n \r\n\r\n\r\n

AngularJSの練習

\r\n
\r\n \r\n
\r\n\r\n\r\n```\r\n```javascript\r\nangular.module('myapp', [])\r\n .controller('MainController', ['$scope', function($scope) {\r\n $scope.users = [\r\n {\"name\":\"taguchi\", \"score\":52.22},\r\n {\"name\":\"tanaka\", \"score\":38.22},\r\n {\"name\":\"yamada\", \"score\":11.11},\r\n {\"name\":\"hayashi\", \"score\":5.25},\r\n {\"name\":\"tanahashi\", \"score\":82.4},\r\n {\"name\":\"yasuda\", \"score\":55.21},\r\n {\"name\":\"minami\", \"score\":32.8},\r\n {\"name\":\"yanagi\", \"score\":72.2}\r\n ];\r\n }])\r\n .controller('UserItemController', ['$scope', function($scope) {\r\n $scope.increment = function() {\r\n $scope.user.score++;\r\n };\r\n }]);\r\n```\r\n```javascript\r\nangular.module('myapp', [])\r\n .controller('MainController', ['$goforward', function($goforward) {\r\n $goforward.users = [\r\n {\"name\":\"taguchi\", \"score\":52.22},\r\n {\"name\":\"tanaka\", \"score\":38.22},\r\n {\"name\":\"yamada\", \"score\":11.11},\r\n {\"name\":\"hayashi\", \"score\":5.25},\r\n {\"name\":\"tanahashi\", \"score\":82.4},\r\n {\"name\":\"yasuda\", \"score\":55.21},\r\n {\"name\":\"minami\", \"score\":32.8},\r\n {\"name\":\"yanagi\", \"score\":72.2}\r\n ];\r\n }])\r\n .controller('UserItemController', ['$goforward', function($goforward) {\r\n $goforward.increment = function() {\r\n $goforward.user.score++;\r\n };\r\n }]);\r\n\r\n```\r\n![イメージ説明](abfea89645eca63a52cf8986b0a5900f.jpeg)\r\n\r\n[リンク内容](http://dotinstall.com/lessons/todo_angularjs/8304)この動画の0:31秒あたりもそうですがmyscript.jsの方に$scope.getDoneCount()と間違われていますが、index.htmlにgetDoneCount()とあるようにgetDoneCount()を定義するから()はいるのではないでしょうか?","answerCount":1,"upvoteCount":0,"datePublished":"2017-04-30T06:26:34.397Z","dateModified":"2022-01-12T10:55:45.698Z","suggestedAnswer":[{"@type":"Answer","text":"はい。\r\n$scope という名前が大切です。\r\n\r\nですが、文字列で$scopeと名前を与えている場合は、function の方の変数名は自由に変えることができます。\r\n\r\n```js\r\n.controller('MainController', ['$scope', function(hogehoge) {\r\n```\r\n\r\nこれはJavascriptをminifyするときに変数名が変わってしまうことで起こる問題を回避するための方法で、通常文字列で名前を与えるのが推奨されています。","dateModified":"2017-04-30T07:29:33.004Z","datePublished":"2017-04-30T07:29:33.004Z","upvoteCount":1,"url":"https://teratail.com/questions/74391#reply-117177","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"JavaScriptに関する質問","url":"https://teratail.com/tags/JavaScript"},{"@type":"ListItem","position":3,"name":"JavaScript","url":"https://teratail.com/tags/JavaScript"}]}}}
質問するログイン新規登録
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

3080閲覧

AngularJS 変数名 要素

goforward

総合スコア705

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/04/30 06:26

編集2017/05/01 01:44

0

0

変数名ならば変更可能と$scopeを$goforwardに変えてみたら表示されません。
これはAngularJSがcssなどで$scopeにこういうデータやメソッドがあるとはじめからプログラムされているのでしょうか?

.incrementプロパティもincrement()メソッドも同じ要素ということでしょうか?
確かにオブジェクトの中にプロパティとメソッドは入っています。
.incrementプロパティもincrement()メソッドは何の関係があるのでしょうか?

イメージ説明

html

1<!DOCTYPE html> 2<html lang="ja" ng-app="myapp"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Angularの練習</title> 6 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 7 <script src="myscript.js"></script> 8</head> 9<body> 10 <h1>AngularJSの練習</h1> 11 <div ng-controller="MainController"> 12 <ul> 13 <li ng-repeat="user in users" ng-controller="UserItemController"> 14 {{user.name}} {{user.score}} 15 <button ng-click="increment()">+1</button> 16 </li> 17 </ul> 18 </div> 19</body> 20</html>

javascript

1angular.module('myapp', []) 2 .controller('MainController', ['$scope', function($scope) { 3 $scope.users = [ 4 {"name":"taguchi", "score":52.22}, 5 {"name":"tanaka", "score":38.22}, 6 {"name":"yamada", "score":11.11}, 7 {"name":"hayashi", "score":5.25}, 8 {"name":"tanahashi", "score":82.4}, 9 {"name":"yasuda", "score":55.21}, 10 {"name":"minami", "score":32.8}, 11 {"name":"yanagi", "score":72.2} 12 ]; 13 }]) 14 .controller('UserItemController', ['$scope', function($scope) { 15 $scope.increment = function() { 16 $scope.user.score++; 17 }; 18 }]);

javascript

1angular.module('myapp', []) 2 .controller('MainController', ['$goforward', function($goforward) { 3 $goforward.users = [ 4 {"name":"taguchi", "score":52.22}, 5 {"name":"tanaka", "score":38.22}, 6 {"name":"yamada", "score":11.11}, 7 {"name":"hayashi", "score":5.25}, 8 {"name":"tanahashi", "score":82.4}, 9 {"name":"yasuda", "score":55.21}, 10 {"name":"minami", "score":32.8}, 11 {"name":"yanagi", "score":72.2} 12 ]; 13 }]) 14 .controller('UserItemController', ['$goforward', function($goforward) { 15 $goforward.increment = function() { 16 $goforward.user.score++; 17 }; 18 }]); 19

イメージ説明

リンク内容この動画の0:31秒あたりもそうですがmyscript.jsの方に$scope.getDoneCount()と間違われていますが、index.htmlにgetDoneCount()とあるようにgetDoneCount()を定義するから()はいるのではないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

はい。
$scope という名前が大切です。

ですが、文字列で$scopeと名前を与えている場合は、function の方の変数名は自由に変えることができます。

js

1.controller('MainController', ['$scope', function(hogehoge) {

これはJavascriptをminifyするときに変数名が変わってしまうことで起こる問題を回避するための方法で、通常文字列で名前を与えるのが推奨されています。

投稿2017/04/30 07:29

TakeoAsai

総合スコア880

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問