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

在angularJS控制器中使用jQuery的$ .ajax

韶英达
2023-03-14
问题内容

如何在angularJS控制器(而不是angularJS内置的$ http)中使用jQuery的$ .ajax()函数,以便以后可以从视图/模板访问$
scope值?

我有这个有点简约的angularJS控制器:

function UserCtrl($scope, $http) {
    $.ajax('http://localhost:8080/admin/user/johndoe').success(function(data) {
        $scope.user = data;
    });
}

并且在视图中类似:

<h1>Hello, {{ user.Username }}</h1>

但是,<h1>视图中的加载时将为空,尽管console.log()控制器中的a告诉我$ scope.user随便填充。

现在,如果我将$.ajax()呼叫替换为$http.get()一切正常,则可以正常工作。

我知道$http这是内置的angularJS,但是由于我不是从头开始,而是已经有很多使用jQuery的代码,因此我想坚持使用jQuery作为$
.ajax()。

有任何想法吗?


问题答案:

因为使用jQuery ajax超出了angular的范畴,所以您需要将$ scope分配包装在

$scope.$apply(function(){
    $scope.user = data;
});

Angular的$ http带有摘要循环触发机制预先构建。



 类似资料:
  • 问题内容: 我单击时有一个下面的按钮,显示一个小的弹出窗口,如通知 我的意图是每隔几秒钟显示一次此弹出窗口,而不用单击按钮,而是从AngularJS控制器显示。 尝试以下解决方案 还包括脚本 使用这样的指令 我看到一个错误“对象没有方法弹出窗口” 问题答案: 伪指令用于DOM操作: 和指令

  • 本文向大家介绍详解AngularJS控制器的使用,包括了详解AngularJS控制器的使用的使用技巧和注意事项,需要的朋友参考一下 控制器在Angularjs中的作用是增强视图,它实际就是一个函数,用来向视图中的作用域添加额外的功能,我们用它来给作用域对象设置初始状态,并添加自定义行为。 当我们在页面上创建一个控制器时,Angularjs会生成并传递一个$scope给这个控制器,由于Angular

  • 问题内容: 为了进行快速验证,我在开发过程中已在浏览器控制台中测试了AngularJS服务。我注入到服务控制台的方法是在为说明这个问题,或 这与AngularJS 1.0.7完美配合。但是,升级到1.1.5之后,对于使用service的服务将不再起作用,不会发送xhr。 我已经测试过直接注射,它也不起作用。AngularJS changelog似乎没有关于此问题的记录。我可以知道这是什么问题吗?

  • 本文向大家介绍简述AngularJS的控制器的使用,包括了简述AngularJS的控制器的使用的使用技巧和注意事项,需要的朋友参考一下  AngularJS应用主要依赖于控制器来控制数据在应用程序中的流动。控制器采用ng-controller指令定义。控制器是一个包含属性/属性和JavaScript对象的功能。每个控制器接受$scope参数指定应用程序/模块,由控制器控制。 在这里,我们已经声明采

  • 问题内容: 我已经在AngularJS教程中看到,有人像这样声明其控制器功能: 其他人这样做是这样的: 哪种方法是在JS文件中声明控制器的最佳方法,因此与最新版本的AngularJS(现在为1.0.7)一起使用效果最佳,这是最佳做法?还是真的不重要吗? 问题答案: 您应该遵循他们提供的第二个示例,该示例使用字符串标识控制器,而不是潜在的全局函数。使用Array语法,以便您可以最小化代码而不必担心m

  • 主要内容:AngularJS 控制器,AngularJS 实例,控制器方法,AngularJS 实例,外部文件中的控制器,AngularJS 实例,其他实例,AngularJS 实例 AngularJS 控制器 控制 AngularJS 应用程序的数据。  AngularJS 控制器是常规的 JavaScript 对象。 AngularJS 控制器 AngularJS 应用程序被控制器控制。 ng-controller 指令定义了应用程序控制器。 控制器是 JavaScript 对象,由标准的