Я начинающий в Angular, и я пытаюсь понять, почему в некоторых случаях мой ng-click не работает в зависимости от контекста. Во-первых, вот мой код, затем я попытаюсь более точно описать свою проблему.функция щелчка, не вызываемая из шаблона директивы
HTML:
<div ng-app='myApp'>
<section id="map-orders" ng-controller="ProductsController as products">
<div class="product-box" ng-repeat="products in products.products | orderBy:'name'">
<div class="product">
<h3> {{products.name}} </h3>
<span ng-click="remove($index)">Remove</span>
</div>
</div>
</section>
</div>
JS:
var app = angular.module('myApp', [ ]);
app.controller('ProductsController', function(){
this.products = products;
this.remove = function(index) {
products.splice(index, 1);
}
});
var products = [
{
name: "Carte 1",
generationDate: "03/03/2016",
},
{
name: "Carte 2",
generationDate: "04/03/2016",
}
];
Так что этот код работает. Но когда я преобразовать его, добавив директиву: HTML:
<div ng-app='myApp'>
<section id="map-orders" ng-controller="ProductsController as products">
<div class="product-box" ng-repeat="products in products.products | orderBy:'name'">
<product></product>
</div>
</section>
</div>
С помощью этой директивы addiotionnaly к оригинальным ЯШ:
app.directive('product', function() {
var tpl = '<div class="product">' +
'<h3 {{products.name}} </h3>' +
'<span ng-click="remove($index)">Remove</span>'
'</div>';
return {
restrict: 'E',
template: tpl,
};
});
Мой удалить() функция не работает в настоящее время. Я не понимаю почему. Может кто-нибудь мне помочь? Если возможно, с моим кодом, так что я получаю проблему.
Спасибо авансом
Вам нужно создать функцию удаления в области директивы –
Хорошо, спасибо за ваш ответ. Есть ли способ вызвать функцию удаления (контроллер) из области действия? – Kamzz