Я вызываю функцию контроллера из директивы, но параметр функции возвращает неопределенное значение, когда я использую console.log для проверки значения. Интересно, что я делаю неправильно или, может быть, шаг, который я забыл. На самом деле я жестко закодировал значение, чтобы увидеть, отображается ли оно, но только в консоли становится неопределенным. ПРИМЕЧАНИЕ. Шаблон пользовательской директивы поступает из внешнего файла, поэтому параметр функции не передается в контроллер. Это работает только в том случае, если элемент пользовательской директивы имеет прикрепленное значение. Должен работать с внутренней директивой html.
//******************** Directive ********************//
app.directive('customdir', [function() {
return {
restrict: "E",
template : "<div>Get product<button ng-click="addToCart(56)">Add to Cart</button></div>",
scope: {
addToCart:"&"
},
link: function(scope, el, attrs) {
}
};
}]);
//******************** Controller ********************//
app.controller('mycontroller', function($scope) {
$scope.addToCart = function(thumbProductId){
$scope.thumbProductId = thumbProductId;
console.log("thumbProductId =" + $scope.thumbProductId); // Returns Undefined
};
});
//******************** Html ********************//
<html>
<div ng-controller="mycontroller">
<custom-dir add-to-cart="addToCart(thumbProductId)"> </custom-dir>
</div>
</html>