Я новичок в AngularJS и решил попробовать. Поскольку я читал об этом, я могу просто подключиться к существующему HTML, и он будет работать. И теперь я застрял в этой точке. Вот мой укоротить PHP код с WordPress и angularjs:Передача нескольких переменных php в список объектов объекта
<?php
$the_query = new WP_Query(array('post_type' => 'products', 'nopaging' => 'true'));
<div class="container">
<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
<?php $name = get_field("name"); ?>
<?php $tree = get_field("tree"); ?>
<div class="material" ng-click="productMaterial(product)"
ng-init="product={name:'<?php echo $name; ?>',tree:'<?php echo $tree; ?>'};">
</div>
<?php endwhile; ?>
</div>
После того, как цикл закончен, то в зависимости от источника HTML, все нг-inits <div class="material">
-s получить правильные значения:
<div class="material" ng-click="productMaterial(product)" ng-init="product={name:'Castello',tree:'oak'};"></div>
..
<div class="material" ng-click="productMaterial(product)" ng-init="product={name:'Variostep CL',tree:'oak'};"></div>
Мой контроллер:
calculator.controller('Calc1ProductController', ['$scope', 'calc1Service', function($scope, calc1Service) {
$scope.productMaterial = function(product) {
console.log("Clicked product: " + $scope.product.name); // print always Variostep CL
};
}]);
Таким образом, проблема в том, что каждый раз, когда я нажимаю на какой-либо продукт, всегда последний продукт печатается на консоли, который равен Variostep CL
. Я понимаю, что каждый новый цикл в цикле просто переопределяет предыдущий объект продукта, и сохраняется только последний продукт.
Как можно передавать данные о продукте так, чтобы всякий раз, когда я нажимаю на веб-странице, правильные данные о продукте регистрируются на консоли?
Как я уже говорил, другой подход заключается в использовании подхода с использованием чистого угла, что я выполняю запрос API и получаю JSON, а затем вместо цикла WP использую ng-repeat, но тогда мне потребуется переписать еще больше кода ,
Я думал создать счетчик и хранить массив продуктов, а затем получить доступ по индексу в угловом контроллере или, может быть, есть более простой подход?
Если мой вопрос слишком запутан, я могу принести снимки веб-страницы и более четкое объяснение. Спасибо
эй, спасибо за предложение. действительно, это так, и я боялся, что я должен переделать его в ng-repeat. – Skyzer