#angularjs
#angularjs
Вопрос:
Здравствуйте, я начал изучать AngrularJS от strach, и у меня возникла проблема с двумя базовыми модулями и basic filter:
<body ng-app="myapp">
<div ng-controller="MyController" >
{{1 1}}
<div>Filtered: {{myData.text | myFilter:2:5}}</div>
</div>
<script>
angular.module("myapp", [])
.controller("MyController", function($scope) {
$scope.myData = {};
$scope.myData.text = "balsalaskdlas";
});
angular.module("myapp", []).filter('myFilter', function() {
return function(stringValue, startIndex, endIndex) {
return stringValue.substring(parseInt(startIndex), parseInt(endIndex));
};
});
</script>
</body>
Но этот код выдает мне ошибку: «Аргумент ‘MyController’ не является функцией, не определен»
И в HTML-браузере в виде страницы, которую я видел:
{{1 1}}
Filtered: {{myData.text | myFilter:2:5}}
Что не так с этим кодом?
Ответ №1:
angular.module("myapp", [])
Приведенная выше строка определяет новый модуль с именем «myapp» и перезаписывает ранее определенный модуль. Если вы хотите получить ссылку на модуль и добавить к нему фильтр, используйте
angular.module("myapp").filter(...)
Комментарии:
1. Спасибо, это была проблема
Ответ №2:
Вы объявляете модуль дважды, и вам не хватает окончания в ng-controller-div
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' document.location '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js" data-semver="1.2.17"></script>
</head>
<body ng-app="myapp">
<div ng-controller="MyController" >
{{1 1}}
<div>Filtered: {{myData.text | myFilter:2:5}}</div>
</div>
<script>
var app = angular.module("myapp", []);
app.controller("MyController", function($scope) {
$scope.myData = {};
$scope.myData.text = "balsalaskdlas";
});
app.filter('myFilter', function() {
return function(stringValue, startIndex, endIndex) {
return stringValue.substring(parseInt(startIndex), parseInt(endIndex));
};
});
</script>
</body>
</html>