Angularjs 自定义搜索指令

Angularjs 自定义搜索指令,angularjs,Angularjs,我正在使用AngularJS和Elasticsearch构建一个小型搜索应用程序。我使用AngularJS UI引导程序Typeahead实现自动完成功能。现在,我正在尝试为搜索功能创建一个自定义搜索指令。还在学习AngularJS指令 我应该能够将UI引导Typeahead指令添加到这个自定义搜索指令中,对吗?(作为属性) 因此,我只需要将建议函数、搜索函数和搜索词(ng模型)传递给我的自定义搜索指令?使用示例并引用 Q1:“我应该能够将UI引导Typeahead指令添加到此自定义搜索指令中,

我正在使用AngularJS和Elasticsearch构建一个小型搜索应用程序。我使用AngularJS UI引导程序Typeahead实现自动完成功能。现在,我正在尝试为搜索功能创建一个自定义搜索指令。还在学习AngularJS指令

我应该能够将UI引导Typeahead指令添加到这个自定义搜索指令中,对吗?(作为属性)

因此,我只需要将建议函数、搜索函数和搜索词(ng模型)传递给我的自定义搜索指令?

使用示例并引用

Q1:“我应该能够将UI引导Typeahead指令添加到此自定义搜索指令中,对吗?(作为属性)。”

A1:由于您的自定义指令是依赖注入的,您应该能够使用通常依赖注入的任何角度组件:

与module.controller API一样,module.directive中的函数参数也是依赖项注入的。因此,我们可以在指令的链接函数中使用$interval和dateFilter

问题2:“所以我只需要将建议函数、搜索函数和搜索词(ng模型)传递给我的自定义搜索指令?”

A2:这是一种方法,但是您的指令将取决于控制器主机是否具有该功能

不过,我还是会同意。在这里,您的指令可以包含计算所需的代码,并且您可以使用=运算符将搜索参数注入其中

链接我的示例。我认为您应该能够轻松地将其转换为您的问题:)

指令:

function statisticsTableDirective(common) {
        return {
            restrict: 'E',
            scope: {
                tabledata: '='
            },
            templateUrl: 'app/statistics/statisticsTable.html',
            link: function (scope, element, attrs) {
                var vm = scope;
                vm.isLastMonth = isLastMonth;

                function isLastMonth(index) {
                    return index+1 === new Date().getMonth();
                }
            }
        };
    }
在statisticsTable.html中,我现在可以使用isLastMonth,因为它直接在作用域上。就像在一个简单的ng类中:

ng-class="::{highlight : isLastMonth($index)}"></td>
ng class=“::{突出显示:isLastMonth($index)}”>

感谢您提供的信息,您能详细说明一下如何使用link属性吗?我一直在观看一些关于link属性的指令的视频,这似乎是一种更好的向指令传递函数和变量的方法。“属性”方式看起来像“基本”方式,链接属性提供了更多的灵活性,你同意吗?好的,我添加了一个链接示例。希望你能使用它。基本上,您可以在该范围内的指令中定义函数,并传递参数。非常感谢!如果我想的话,我可以在link属性中定义我的建议函数和搜索函数?我理解对了吗?是的,你可以做到!
ng-class="::{highlight : isLastMonth($index)}"></td>