2015-06-15 2 views
1

Я новичок AngularJS и я использую Угловой 1.3.15 и я столкнулся ошибкой ниже, когда я пытаюсь выполнить простой скрипт

неперехваченной Ошибку: [$ инжектор: modulerr]

Html

<title>AngularJS data binding</title> 
<script src="node_modules/angular/angular.min.js"></script> 
<script src="myscript.js"></script> 

<div data-ng-controller="SimpleController"> 

    Name : 
    <br/> 
    <input type="text" ng-model="name"/>{{name |uppercase}} 
    <div> 
     <ul> 
      <li ng-repeat="personName in names">{{personName}}</li> 
     </ul> 

    </div> 

</div> 

JS файл -

(function(){ 
var app = angular.module('myApp',[]); 
app.controller('SimpleController', function($scope) { 
    $scope.names = ['test1','test2']; 


}); 
})(); 

ли код в файле myscript.js должен быть в (function()})?

Спасибо,

+0

Вы Минимизация файл в JS? я думаю, да :) –

+0

Да, я использую файл с миниатюрами angularjs –

+0

'(function() {})()' - это функция, вызывающая немедленное вызов. Это означает, что любые переменные, объявленные внутри, будут ограничены только этим исполнением, а не всей средой javascript. –

ответ

1

Если вы Минимизация в js файлы затем

app.controller('SimpleController', function($scope) { 
    $scope.names = ['test1','test2']; 
}); 

это становится чем-то вроде

x.controller('SimpleController', function(a) { 
    a.a = ['test1','test2']; 
}); 

, то нет в контроллере нет $scope так использовать, как,

app.controller('SimpleController', ['$scope', function($scope) { 
    $scope.names = ['test1','test2']; 
}]); 

то угловатый будет решать переданные аргументы в функцию,

, например:

app.controller('SimpleController', ['$scope', function(a) { 
    a.names = ['test1','test2']; 
}]); 

угловыми будет соответствовать a к $scope собственности.

+0

Чтобы получить полную ошибку, я использовал недопустимую версию angularJS, и теперь она говорит: «Модуль« myapp »недоступен! Вы либо ошибочно написали имя модуля, либо забыли его загрузить. Если регистрация модуля гарантирует, что вы укажете зависимости как второй аргумент ». ,В то время как тег HTMl содержит - –

+0

nope не файл 'angular.js', проверьте свои пользовательские' JS-файлы' –

+0

, это исправлено прямо сейчас! благодаря! –

1

Ошибка возникает из-за минимизации. Попробуйте это

JS:

(function(){ 
var app = angular.module('myApp',[]); 
app.controller('SimpleController',['$scope', function($scope) { 
    $scope.names = ['test1','test2']; 


}]); 
})(); 

как вы попробовать это минификация доказательство, прочитать here

+0

Вы имеете в виду Минимизацию, а не увеличение? :) –

+0

Да, я сделал Thankx для исправления меня :) –