当前位置: 首页 > 面试题库 >

AngularJS从$ http自动完成

冀阳文
2023-03-14
问题内容

我正在尝试编写一个自动完成指令,该指令使用$ http请求 (不使用任何外部插件或脚本)
从服务器获取数据。当前,它仅适用于静态数据。现在,我知道我需要将我的$ http请求插入source:指令的中,但是我找不到关于该主题的任何好的文档。

http请求

$http.post($scope.url, { "command": "list category() names"}). 
            success(function(data, status) {
                $scope.status = status;
                $scope.names = data;    
            })
            .
            error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;   
            });

指示

app.directive('autoComplete', function($timeout) {
    return function(scope, iElement, iAttrs) {
            iElement.autocomplete({
                source: scope[iAttrs.uiItems],
                select: function() {
                    $timeout(function() {
                      iElement.trigger('input');
                    }, 0);
                }
            });
        };
    });

视图

<input auto-complete ui-items="names" ng-init="manualcat='no category entered'" ng-model="manualcat">

那么,如何将这些正确地按Angular方式拼凑在一起?


问题答案:

我做了一个自动完成指令,并将其上传到GitHub。它还应该能够处理来自HTTP请求的数据。

这里是演示:http :
//justgoscha.github.io/allmighty-
autocomplete/

这里是文档和存储库:https :
//github.com/JustGoscha/allmighty-
autocomplete

因此,基本上,promise当您想从HTTP请求中获取数据时,必须返回a
,而在加载数据时就可以解决该问题。因此,您必须$q在发出HTTP请求的位置注入服务/指令/控制器。

例:

function getMyHttpData(){
  var deferred = $q.defer();
  $http.jsonp(request).success(function(data){
    // the promise gets resolved with the data from HTTP
    deferred.resolve(data);
  });
  // return the promise
  return deferred.promise;
}

我希望这有帮助。



 类似资料:
  • 问题内容: 我有一个简单的登录表单,除非您使用Chrome的自动完成功能,否则该表单仅适用于桃花心木。 如果您开始键入并使用自动完成功能,并且该功能会自动填充您的密码,则我的angularjs模型的密码没有任何值。 我试图通过在表单上设置属性来关闭自动填充功能,但这似乎没有任何效果。 我该怎么做:1.如果有人使用Chrome的自动完成功能,请确保我能获得价值?2.禁用Chrome的自动完成功能?

  • 问题内容: 我有一个文本框,我想在其上应用自动完成功能。我正在使用以下插件: 自动压缩 它可以正常工作,但是一旦我将其与AngularJS结合使用,它就会停止工作: 我有以下代码: 和jfiddle的链接如下: 小提琴 如您所见,虽然没有Angular,但自动完成功能不起作用。 有人可以帮忙吗? 问题答案: 为您服务的傻瓜 http://plnkr.co/edit/5XmPfQ78vRjSrxE0

  • 问题内容: 我在页面上使用AjgularJS,并想添加一个字段以使用来自jqueryui的自动完成功能,并且自动完成功能不会触发ajax调用。 我已经在没有angular的页面上测试了脚本(ng-app和ng- controller),并且效果很好,但是当我将脚本放在带有angularjs的页面上时,它停止工作。 任何想法? jQuery脚本: 有趣的提示:当我在Chrome检查器上调用脚本时,自

  • 链接href="lib/ionic/css/ionic.css"rel="样式表" 链接href="css/style.css"rel="样式表" 在HTML中应用CSS类时,如何使其自动完成? div class=“杆头杆正” 如何获得属性的自动建议(例如:-写了条后,我按下了自动建议按钮,但没有获得像条头或条脚这样的选项,但它们存在于库css中),其他一切都可以正常工作。

  • 问题内容: 我正在使用AngularJS,并希望在动画制作完成后得到通知。我知道可以使用像这样的javascript定义的动画来完成此操作,但是我很好奇我是否可以不用javascript来做到这一点。 问题: 是否可以使用角度 ng-enter 和 ng-leave css- transitions并指定完成的回调?我猜该事件已被触发,因此应该有一种方法可以执行此操作。 我有这个: HTML: C

  • 问题内容: 如何使用Redis实现自动完成功能? 比如说我有一个数组。当我型我得到 我希望你明白这一点。我如何有效地使用redis命令来实现这一点(如果可能,但我认为是)。如果我能通过telnet尝试一些简单的命令来模仿这种行为,那就太好了。 谢谢 问题答案: 如果您要处理的是大型数据集,建议您考虑将其实现。我将一小部分Ruby做到了这一点: 例如: 在Wikipedia的Tries条目上阅读有关