【问题标题】:AngularJS directive with jQuery UI - template and element带有 jQ​​uery UI 的 AngularJS 指令 - 模板和元素
【发布时间】:2012-12-17 22:25:20
【问题描述】:

我正在尝试使用 jQuery UI 自动完成插件创建自动完成文本输入的 AngularJS 指令。

这是我的角码:

<script type="text/javascript">
        angular.module('components', []).
            directive('autoComplete', function () {
                return {
                    restrict: 'E',
                    template: '<input type="text" id="tags" name="tags" maxlength="80" />',
                    link: function (scope, element, attrs) {
                        var dataUrl = '@Url.Action("GetTags", "Home")';
                        element.autocomplete({
                            source: function (term, responseCallBack) {
                                $.get(dataUrl + '?term=' + term.term, function (data) {
                                    responseCallBack(data);
                                });
                            },
                            minLength: 2,
                            select: function (event, ui) {
                                alert(ui.item.label);
                            }
                        });
                    }
                };
            });

        angular.module('JqueryApp', ['components']);
    </script>

这是我的html代码:

<div ng-app="JqueryApp">
    <div>
        <div>
            <auto-complete />
        </div>
    </div>
</div>

它不起作用,因为我需要处理模板元素而不是 &lt;auto-complete&gt; 指令标记元素,因此我可以在其上应用 autoComplete 插件,我发现返回的元素(在 link 回调函数中)是&lt;auto-complete&gt; 指令,而不是给定的模板(&lt;input&gt;),我可以在上面应用jQuery 插件。

如何在模板(输入)上应用 autoComplate 插件?

谢谢

【问题讨论】:

    标签: jquery jquery-ui angularjs


    【解决方案1】:

    尝试添加 replace: true

    return {
      replace: true,
      restrict: 'E',
      [...]
    

    【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2012-06-25
    • 2021-05-24
    • 2011-05-08
    • 2012-10-18
    • 2016-03-06
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多