2015-03-01 4 views
2

Работает следующий код.angularJS ng-app value

<body ng-app="" ng-init="names=['a','b']"> 
    <ul ng-repeat="x in names"> 
     <li > 
      {{ x }} 
     </li> 
    </ul> 
</body> 

, но как только я добавить значение нг-приложение (скажем нг-приложение = «MYAPP»), она перестает работать. Кто-нибудь знал бы, почему?

+0

Что находится в вашем приложении.js? у вас есть модуль под названием myApp setup там? – iandayman

+0

@iandayman: Хорошо, я думаю, что я ближе к ответу с ответом. Я предполагал, что значение, используемое здесь, - это то, что я хотел бы назвать своим приложением. Вы предполагаете, что это имя просто вызывает пользовательский объект, который я создаю в JS? –

+0

Что вы делаете, вызывая директиву ng-app, является автоматическая загрузка модуля AngularJS в элемент на странице. Таким образом, этот элемент становится корнем того, где ваше приложение Angular. Я настоятельно рекомендую прочитать документацию для ngApp здесь: https://docs.angularjs.org/api/ng/directive/ngApp - и документацию для angular.module здесь: https://docs.angularjs.org /api/ng/function/angular.module –

ответ

1

Потому что вы указали угловым, указав имя, что на этой странице все определения объектов и детали, которые я собираюсь использовать, определены в модуле, называемом моим приложением. Угловое Искать его и не найти.

Когда вы укажете ng-приложение, вы должны указать определение приложения, контроллер вы можете инициализировать эти значения из ng-init.

<html> 
<body> 
<div ng-app="myapp" controller="MyController"> 
     <span>{{personname}}</span> 
</div> 

<script> 
// this will setup the myapp 
var app = angular.module('myapp', []); 
app.controller('MyController',function(){ 
$scope.personname='tammi'; 
}); 
</script> 

</body> 
</html> 
0

Вам нужно будет создать отдельный «app.js» (не забудьте сослаться на него внутри тегов скрипта в HTML) (просмотреть) файл и создать угловой модуль и присвоить его глобальной переменной «MYAPP»:

var myApp = angular.module("myApp", []); 

Затем создайте контроллер, который будет демонстрировать данные в представление с помощью сервиса $ Области применения:

myApp.controller("MyCtrl", function($scope){ 
    $scope.names = ['a', 'b']; 
} 

в представлении, выполните следующие действия:

<body ng-app="myApp" ng-controller="MyCtrl"> 
    <ul ng-repeat="x in names"> 
     <li > 
      {{ x }} 
     </li> 
    </ul> 
</body> 
Смежные вопросы