javascript - 从 AngularJS 中的工厂/服务修改 $scope

标签 javascript jquery ajax angularjs

有人可以创建一个示例,说明如何使用使用 AJAX 的工厂或服务从 Controller 外部设置 $scope 变量吗?

每次我尝试 AJAX 变量都返回未定义,因为请求尚未返回,因此 $scope.var 未定义。 AJAX 请求返回后,即使我从 Controller 调用服务,$scope.var 仍然未定义。请帮忙。

最佳答案

请在此处查看演示 http://plnkr.co/edit/JcRY8uHRYaHH33UTH7Bt?p=preview

var app = angular.module("myapp", []);

app.service("dataService", function($http, $q) {

  var data = [];

  function getData() {

    var deffered = $q.defer();
    var request = {
      url: 'data.json',
      method: 'GET'
    };
    $http(request).then(sucess, error);

    function sucess(response) {
      deffered.resolve(response.data);
    }
    function error() {
      deffered.reject();
    }

    return deffered.promise;

  }


  return {
    data: data,
    getData: getData
  }

})
app.controller('MyControl', function($scope, dataService) {

  $scope.data = [];
  dataService.getData().then(function(response) {

    $scope.data = response;
  })
});

关于javascript - 从 AngularJS 中的工厂/服务修改 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26764706/

相关文章:

javascript - "fallback when the CDN’ s 无法访问”服务器端使用 php

javascript - 为什么单个基于 JQuery 的内容 slider 不适合我? (bxSlider,js中的逗号)

javascript - 使用 AJAX 向 PHP Web 服务提交基本表单数据

javascript - 如何从 AngularJS 中的服务调用 ajax?

javascript - Jquery 选项卡控件 - 如何选择选项卡

javascript - angularjs if/else 语句和窗口宽度

javascript - 如何在不显式调用 "this"的情况下在事件处理程序中获取 "this"

javascript - 水平添加一张又一张背景图片

javascript - 修复了表中的左列

jquery - 这个函数有什么问题吗? .每个相关