簡體   English   中英

從AngularJS中的Factory / Service修改$ scope

[英]Modify $scope from a Factory/Service in AngularJS

有人可以舉一個例子說明如何使用使用AJAX的工廠或服務從控制器外部設置$ scope變量嗎?

每次我嘗試過AJAX變量都會返回undefined,因為請求尚未返回,因此$scope.var是undefined。 在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;
  })
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM