javascript – AngularJS在具有隔离范围的指令中使用ng-change – 转向基于组件的体系结构

我目前正在努力在我的指令中使用隔离范围进行更改.我试图从ng-controller转移到更加基于组件的架构,但它证明比预期更具挑战性.

这是一个小提琴,我似乎无法工作.
fiddle

我很确定这个问题就在这里

app.directive("search", function(service) {
    return {
        restrict: 'E',
        replace: true,
        scope: {},
        controller: ['$scope', function($scope) {
            $scope.search = function(keyword) {
                service.searchData(keyword);
            };
        }],
        template: '<div style="padding-bottom: 15px;">' +
                            '<center>' +
                '<input type="text" ng-model="keyword" ng-change="search(keyword)"/>' +
               '</center>' +
                            '</div>'
    };
});

但是小提琴将更全面地了解我想要完成的任务.

最佳答案 Chnage控制器如下图所示

controller:searchCtrl

在指令之外写下面的代码

 searchCtrl.$inject = ['$scope', 'service'];
 function searchCtrl($scope, service) {
    $scope.search = function(keyword) {
       alert("called - " + keyword);
       service.searchData(keyword);
    };
}
点赞