如何在Angularjs服务中调用页面方法

时间:2013-06-10 13:16:04

标签: asp.net angularjs

我是Angular js的新手。

背后的代码中的静态方法

[WebMethod]
public static string GetPracticeLocations()
{
     return "[{ id: 1, name: Test AccountName}]";        
}

Angular JS服务

appSettings.service('PracticeLocationsService', function () {
     this.getPracticeLocations = function () {
          var PracticeLocationsData = PageMethods.GetPracticeLocations();
          return PracticeLocationsData;
     };
});

我想知道如何在Angular JS中实现页面方法。

任何有用的suggustein apricited

由于

2 个答案:

答案 0 :(得分:1)

可能我太晚了,但你可以使用defer来调用页面方法并返回一个承诺,

var getPracticeLocations = function () {
        var deferred = $q.defer();
        PageMethods.GetPracticeLocations(function (response) {
            if (response) {
                deferred.resolve({ result: angular.fromJson(response) });
            } else {
                deferred.resolve({ result: null });
            }
        },
                function (msg, code) {
                    deferred.reject(msg);
                });
        return deferred.promise;
      };

答案 1 :(得分:0)

您想查看factory()$http

伪代码:

angular.factory("PageMethods", ["$http", function($http){

    return {
         GetPracticeLocations : function(){
             return $http.get("/someurl");
         }
    }

}]);