これは現在の私の HTML です。HTML 自体からスクリプトまで、すべてが含まれています。
<!doctype html>
<html lang="en-US" ng-app>
<!--Head-->
<head>
<meta charset="UTF-8">
<title>Lesson 5 - ng-show & ng-hide</title>
<meta name="viewport" content="width=device-width">
<style type="text/css">
* {
box-sizing: border-box;
}
body {
font: 16px/1.5 sans-serif;
color: #222;
margin: 5em;
}
</style>
</head>
<!--Body-->
<body ng-controller="information">
<div>
<label for="name">
Name:
<input type="text" name="username" id="username" placeholder="Your name here please" ng-model="name"/>
</label>
<br>
<label>
Hide?
<input type="checkbox" ng-model="checked"/>
</label>
</div>
<div ng-hide="checked">
Hidden Message here
<br>
Welcome {{ name || "user" }}!
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script type="text/javascript">
var information = function ($scope) {
console.log($scope);
}
</script>
</body>
</html>
ご覧のとおり、これは AngularJS を使用した単純な HTML ページです。と呼ばれるコントローラーによって本体が制御されていることがわかりますinformation
。
ここで、 body タグから情報を削除し、それを最初のdiv
タグに配置すると ( ng-controller="information"
body タグではなく div タグに配置するように)、プログラムが動作しなくなることがわかります (名前を入力しても表示されません)、これは、他の div がコントローラーの範囲外にあるためです。
さて、私が聞きたいのは、HTML 内の別のコントローラーからのデータにどのようにアクセスするのですか? 私は次のことを試しました:
{{ information.name || "user" }}
<- 最初の試み{{ information.$scope.name || user }}
<- {{}} が JS を評価するため、2 回目の試行
そして結局、私は望んだ結果を得ることができませんでした。div
では、別のスコープからどのスコープにも依存しないタグへの情報にアクセスするにはどうすればよいでしょうか?