#angularjs
#angularjs
Вопрос:
<body>
<div data-ng-controller="itemController as store">
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="product in store.product.names">
<h3>{{store.product.name}}
<em class="pull-right">{{store.product.price}}</em>
</h3>
</li>
</ul>
</div>
<script type="text/javascript">
(function() {
var app = angular.module('store', []);
app.controller('itemController', function($scope) {
$scope.product = gem;
});
var gem = [{
name: 'Item1',
price: 15
}, {
name: 'Item2',
price: 16
}, {
name: 'Item3',
price: 17
}, {
name: 'Item4',
price: 18
}, {
name: 'Item5',
price: 19
}];
})();
</script>
<!-- <script src="jquery.js"></script>-->
<script src="app.js"></script>
После просмотра страницы в моем браузере и проверки страницы консоли я получил это сообщение об ошибке
Ошибка: [ng: areq] Аргумент ‘ItemController’ не является функцией, не определен.
Комментарии:
1. Вы должны определить переменную перед ее использованием или назначением.
Ответ №1:
Измените свой ng-repeat следующим образом,
<div data-ng-controller="itemController">
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="product in products">
<h3>{{product.product.name}}
<em class="pull-right">{{product.price}}</em>
</h3>
</li>
</ul>
</div>
Контроллер:
var app = angular.module('store', []);
app.controller('itemController', function($scope) {
var gem = [{
name: 'Item1',
price: 15
}, {
name: 'Item2',
price: 16
}, {
name: 'Item3',
price: 17
}, {
name: 'Item4',
price: 18
}, {
name: 'Item5',
price: 19
}];
$scope.products = gem;
});
})
Ответ №2:
Это ваш рабочий код — в thin plunker
HTML-КОД:
<div data-ng-controller="itemController">
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="item in product">
<h3>{{item.name}}
<em class="pull-right">{{item.price}}</em>
</h3>
</li>
</ul>
</div>
В контроллере:
// Код идет сюда
(function(){
var app = angular.module('store', []);
app.controller('itemController', function($scope) {
$scope.hello = 'hello';
var gem = [{
name: 'Item1',
price: 15
}, {
name: 'Item2',
price: 16
}, {
name: 'Item3',
price: 17
}, {
name: 'Item4',
price: 18
}, {
name: 'Item5',
price: 19
}];
$scope.product = gem;
});
})();
Ответ №3:
Вы не должны использовать product.names с ng-repeat.
Попробуйте приведенный ниже код :
<body>
<div data-ng-controller="itemController as store">
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="product in products">
<h3>{{product.name}}
{{product.price}}
</h3>
</li>
</ul>
</div>
<script type="text/javascript">
(function() {
var app = angular.module('store', []);
app.controller('itemController', function($scope) {
$scope.products = gem;
});
var gem = [{
name: 'Item1',
price: 15
}, {
name: 'Item2',
price: 16
}, {
name: 'Item3',
price: 17
}, {
name: 'Item4',
price: 18
}, {
name: 'Item5',
price: 19
}];
})();
</script>
<!-- <script src="jquery.js"></script>-->
<script src="app.js"></script>