2012-11-20 14 views
22

Mam problem z wyborem elementu z kątem. I musi być co jakiś głupi błąd:Błąd: "Selektory nie zaimplementowane"

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

błędu, że wyniki:

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 

Reproduced in this fiddle

Co robię źle? Dołączyłem jQuery. Czy to nie ma działać?

+1

+10 sam problem tutaj, a to pytanie pomogła :) – Adelin

Odpowiedz

60

To dlatego, że jquery musi mieć odniesienie przed kątowej. JSFiddle zarejestrował Angular 1.0.2 FIRST, a następnie wersję jquery, którą dodałeś jako zasób.

<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> 

W ten sposób Angular wie, że może używać JQuery, a nie JQLite. Gdy to zrobisz, przełącznik będzie działał w angular.element()

Here's your fiddle, updated to reference the scripts in the right order (and altered slightly, see the comments)

Jeśli nie masz JQuery, można wybrać elementu DOM ręcznie.

var div = document.querySelector('div'); 
$scope.elem = angular.element(div); 
+4

ta odpowiedź mi pomóc również –

+0

plus jeden dla „jeśli nie masz jquery”, ponieważ idealnie nie miałby jQuery przypadku korzystania kanciasty. –

Powiązane problemy