#html #angularjs
#HTML #angularjs
Вопрос:
Я работаю с учебным пособием AngularJS по code school, мой код продолжает отображаться неправильно на моей веб-странице. Был бы признателен за любую помощь, пожалуйста. Вот мой index.html и app.js коды ниже:
для index.html:
<!DOCTYPE html>
<html ng-app="store">
<head>
<meta charset="utf-8" />
<title>My Angular App</title>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body ng-controller="StoreController as store">
<div ng-repeat="product in store.products">
<h1>{{product.name}}</h1>
<h2>${{product.price}}</h2>
<p>{{product.description}}</p>
<button ng-show="store.product.canPurchase"> Add to Cart </button>
</div>
</body>
</html>
Для app.js:
(function() {
var app = angular.module('store', []);
app.controller('StoreController', function(this){
this.products = gems;
});
var gems = [
{ name: 'Dodecahedron',
price: 2.95,
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
images: [
{
full: 'dodecahedron-01-full.jpg',
thumb: 'dodecahedron-01-thumb.jpg'
}]
canPurchase: false
soldOut: false
},
{
name: "Pentagonal Gem",
price: 5.95,
description: "..."
canPurchase: true,
soldOut: false
}
];
})();
Ответ №1:
У вас есть 2 проблемы:
1) Вам не нужно указывать «this» в качестве параметра функции при создании контроллера:
app.controller('StoreController', function(){
this.products = gems;
});
2) множественные опечатки (пропущенные запятые) в ваших данных, из-за которых Javascript не выполняет синтаксический анализ.
var gems = [
{ name: 'Dodecahedron',
price: 2.95,
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
images: [
{
full: 'dodecahedron-01-full.jpg',
thumb: 'dodecahedron-01-thumb.jpg'
}],
canPurchase: false,
soldOut: false
},
{
name: "Pentagonal Gem",
price: 5.95,
description: "...",
canPurchase: true,
soldOut: false
}
];
Комментарии:
1. Спасибо, Джефф :). очень признателен, но вы не указали, где у меня были опечатки 🙂
2. Вы можете просто скопировать то, что я написал, но конкретно внутри ваших объектов вам не хватает необходимых запятых. В первом, после ] в массиве изображений, «canPurchase: false». Во втором, после описания: «…»