ケタンの答えは正しいです。なぜ子要素を取得したいのですか? 通常、コントローラーから直接 html を操作することはありませんが、ページに変更を加える可能性のある $scope のデータを更新する必要があります。単純な古いコントローラーであなたの例を取り上げるだけで、私たちは気にしませんelement
が、スコープのデータについては気にしません。
この簡単な例では、ボタンがクリックされたときにテキストエリアを更新し、別の div を表示します。アイテム配列にアイテムを追加します。jQuery を使用すると、javascript など$(el).val()
を介して dom を操作します$(el).find()
が、Angular コントローラーでは、dom については心配せず、データのみを心配します。
デモ: http://plnkr.co/edit/aL6p09DrQsUotu7vnceZ
app.controller('MainCtrl', function($scope) {
$scope.message = "Some data";
$scope.testMethod = function() {
$scope.items.stuff.push($scope.message);
$scope.clicked = true;
$scope.message = $scope.message + ' you clicked me.';
}
$scope.items = {stuff:['one', 'two', 'three'],id:1,name:'yeah'}
});
<body ng-controller="MainCtrl">
<div id="container" ng-form>
<textarea name="message" ng-model="message"></textarea>
<button value="send" ng-click="testMethod()">Send</button>
</div>
<div ng-show="clicked">
I was clicked
</div>
<h2>{{items.name}}</h2>
<div ng-repeat='item in items.stuff'>
{{item}}
</div>
</body>
上記はコントローラー中心であり、ページ上の要素を操作することはディレクティブを使用した角度の一部であり、達成しようとしていることに関する正確な情報がもう少しない場合 (フォーム入力値を取得していますか?)、正確な方向を示すのは困難です。この特定の問題のために。