在$ scope中使用IIFE功能在页面加载时创建转换数据

时间:2014-07-09 05:12:55

标签: angularjs scope iife

我对JavaScript&角。 所以这可能是一个愚蠢的问题,但这里有......

我需要执行一个函数来对输入数据执行数据转换并创建数组&页面将使用的对象。我只能在执行此功能后处理我的页面。

请注意,此函数不会被任何角度伪像直接使用,但其输出将为。

请指教。感谢

$scope.prepped_data = function (data) {
    // code to generate new data structures //
    $scope.data1 = {};
    $scope.data2 = {};
};

2 个答案:

答案 0 :(得分:0)

在服务中

  public method1(){
        var defer = this.$q.defer();
           //Show some loader 
        this.$http({
            method: 'GET',
            url: "www.xyz.com"
        }).success((result) => {
            //Hide loader 
           defer.resolve(result);
        }).error((result) => {
            defer.reject(result);
        });

在控制器中

         method1().then(function(data){//Do your processing})

答案 1 :(得分:0)

只需创建一个这样的工厂:

angular.module('yourAppModule').factory('yourFactory', function ($http) {
return {
    getData: function() {
        var url = 'http://get-your-data.com/data';
        return $http({
            method: 'GET',
            url: url
        });
    },
}

然后,在控制器中:

angular.module('yourAppModule').controller('yourCtrl', function ($scope, yourFactory) {
        yourFactory.getData().success(function (data) {
        // process your data here
        $scope.data = dataProcessed;
    }
});

然后您可以使用"数据"在您的视图中,您可以根据需要显示它,Angular templates中还有过滤功能。看一看。

如果您需要在视图中使用自定义函数,您可以将其传递给控制器​​中的$ scope,就像您一样。

$scope.myFunc = function(data){
   //code here
}

然后在您看来,您可以使用:

<!doctype html>
<html xmlns:ng="http://angularjs.org" ng-app="yourAppModule" id="ng-app">
  <head>
    <script src="bower_components/angular/angular.js"></script>
  </head>
  <body>
    <div ng-controller="yourCtrl">
      {{ myFunc() }}
    </div>

  </body>
</html>

希望它有所帮助, 最好的。