0

Директива не вызывает мой метод контроллера. Ниже мой код:Почему директива не вызывает мой метод контроллера?

Контроллер:

exports.controller = ['$scope', function($scope) { 
     $scope.addParamter = function() { 
      console.log("here"); 
     }; 

     $scope.editParamter = function (item) { 
      console.log(item); 
     }; 
    }]; 

Страница:

<formula-editor 
    add-paramter="addParameter()" 
    edit-paramter="editParameter(item)"> 
</formula-editor> 

Директива:

Js:

exports.inject = function(app) { 
    app.directive('formulaEditor', exports.directive); 
    return exports.directive; 
}; 

exports.directive = function() { 
    return { 
     restrict: 'E', 
     templateUrl: '/dist/views/formula-editor.html', 
     scope: { 
      addParameter: '&', 
      editParameter: '&' 
     } 
    }; 
}; 

формула-editor.html:

<button ng-click="addParameter()"></button> 
+0

Покажите нам использование контроллера, на котором вы ссылаетесь? –

+0

Исправьте вашу опечатку в html: 'add-parameter' и' edit-parameter' – devqon

ответ

0

Вы можете попробовать нижеследующий код. Он может работать с u.

exports.directive = function() { 
    return { 
     restrict: 'E', 
     templateUrl: '/dist/views/formula-editor.html', 
     scope: { 
      addParameter: '&addParamter', 
      editParameter: '&editParamter' 
     } 
    }; 
}; 

Вместо

<formula-editor 
    add-paramter="addParameter()" 
    edit-paramter="editParameter(item)"> 
</formula-editor> 

вы можете использовать

<formula-editor 
    addParamter="addParameter()" 
    editParamter="editParameter(item)"> 
</formula-editor> 

Это было бы лучше.

1

О да, добро пожаловать в Угловое! Вы сделали Бу-Бу здесь ваше $scope.addParamter() имя функции является неправильным (опечатка) в вашем HTML, так что ваша директива не может найти упомянутую addParameter() функцию в директиве tag.So просто изменить свой основной HTML как ниже

От

<formula-editor 
    add-paramter="addParameter()" 
    edit-paramter="editParameter(item)"> 
</formula-editor> 

Для

<formula-editor 
    add-paramter="addParamter()" 
    edit-paramter="editParamter(item)"> 
</formula-editor> 

Вот рабочий demo вашей директивы.

Смежные вопросы