Używam AngularUI Typeahead, na stronie "indeksu" mojej aplikacji. Nie robię niczego wyjątkowego - w rzeczywistości, po prostu próbuję uzyskać przykład Mają się na ich miejscu pracy UI, a ja dostaję ten błąd:AngularJS - "Błąd: szablon musi mieć dokładnie jeden element główny" podczas używania Angular-UI Typeahead
Error: Template must have exactly one root element
nie mam pojęcia co to znaczy, ale to zdarza się tylko gdy mam następujący kod:
<input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue">
razie potrzeby, mój sterownik do mojej stronie głównej (która jest wywoływana przez $routeProvider
do katalogu /
index):
function indexCtrl($scope, $location, $resource) {
$scope.selected = undefined;
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
}
Należy zauważyć, że reszta kontrolera na stronie działa absolutnie dobrze, to tylko błąd $scope.selected/$scope.states
. Nie mogę zrozumieć, co oznacza błąd, więc rozwiązywanie problemów jest dość trudne!
Wszelkie pomysły?
EDIT Oto mój szablon HTML:
<html ng-app="myApp" class="ng-scope">
<head>
// Head stuff, probably irrelevant
</head>
<body>
<div class="container">
<div ng-view="" class="row-fluid">
<form class="row-fluid">
<div class="container-fluid">
<input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue">
</div>
</form>
</div>
</div>
// A bunch of Angular scripts are here
</body>
</html>
to z pewnością związane ot skrypt typeahead
mogę usunąć typeahead="state for state in states | filter:$viewValue"
i działa skrypt (choć oczywiście funkcja typeahead
nie robi ...)
Co jest 'wejściowy (type = "text", ng model = "wybrany", wpisywanie znaków z wyprzedzeniem = "stan do stanu, w stanach | filtra: $ viewValue") ', czy nie jest to' '? –
@YeLiu Och, przepraszam, to część silnika szablonowego 'Jade' używanego przez ExpressJS. Przedstawia się tak, jak powiedziałeś, zaktualizuję pytanie, aby to odzwierciedlić. – Jascination
Umieść swój html/szablon, ponieważ błąd dotyczy szablonu. –