【问题标题】:Using jQuery's $.ajax within an angularJS controller在 angularJS 控制器中使用 jQuery 的 $.ajax
【发布时间】:2013-01-20 22:16:40
【问题描述】:

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

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

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

在视图中类似于:

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

但是,视图中的 &lt;h1&gt; 在加载时将是空的,尽管控制器中的 console.log() 告诉我 $scope.user 已按我的意愿填充。

现在,如果我将 $.ajax() 调用替换为 $http.get(),一切都会按预期正常工作。

我知道 $http 是内置的 angularJS,但由于我不是从头开始,但已经有很多代码使用 jQuery,所以我想坚持使用 jQuery 来获取 $.ajax()。

有什么想法吗?

【问题讨论】:

    标签: jquery ajax model-view-controller angularjs


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 2013-05-14
      • 2014-04-05
      • 2015-08-18
      • 2015-01-17
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多