22

角度のある要素を選択するのに苦労しています。私はばかげた間違いを犯しているに違いありません:

function Root($scope) {
    $scope.elem = angular.element('div');
}​

結果のエラー:

Error: selectors not implemented
    at Error (<anonymous>)
    at Object.JQLite [as element] (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:1523:13)
    at new Root (http://fiddle.jshell.net/kzX9z/7/show/:28:27)
    at invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:2795:28)
    at Object.instantiate (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:2805:23)
    at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:4621:24)
    at $get.i (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:4200:17)
    at forEach (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:117:20)
    at nodeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:4185:11)
    at compositeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js:3834:14) angular.js:5563
$get angular.js:5563
$get angular.js:4661
$get.Scope.$apply angular.js:7890
SNAKE_CASE_REGEXP angular.js:930
invoke angular.js:2788
bootstrap angular.js:928
angularInit angular.js:904
(anonymous function) angular.js:14397
trigger angular.js:1695
event.preventDefault angular.js:1930
forEach angular.js:110
eventHandler

このフィドルで再現

私は何を間違っていますか?jQueryを含めました。これは機能するはずではありませんか?

4

1 に答える 1

60

これは、 angularの前にjquery を参照する必要があるためです。JSFiddle は Angular 1.0.2 を最初に登録し、次にリソースとして追加した jquery バージョンを登録しました。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>

このようにして、Angular は JQLite ではなく JQuery を使用できることを認識します。これを行うと、セレクターが機能しますangular.element()

これがあなたのフィドルで、スクリプトを正しい順序で参照するように更新されています(わずかに変更されています。コメントを参照してください)

JQuery がない場合は、DOM 要素を手動で選択できます。

var div = document.querySelector('div');
$scope.elem = angular.element(div);
于 2012-11-20T20:25:14.707 に答える