2014-12-04 63 views
0

我需要加載的所有模板之前調用一次HTTP服務調用一次,可用角度HTTP(使用UI路由),並返回數據,所有控制器可用,這可能嗎?在所有控制器

$http.get('localhost;8080/some.json').then(function(d) { 
    return d; 
}; 

回答

1

如果你想一次運行它,並提供給所有控制器,然後創建一個服務,比如說,CoreData,並從app.run()稱之爲如下

app.factory('CoreData',function($http) { 
    var data, defer; 
    return { 
    load: function() { 
     defer = $http.get('localhost;8080/some.json'); 
    }, 
    get: function() { 
     return defer; 
    } 
    }; 
}) 
.controller('CtrlA',function(CoreData) { 
    $scope.foo = CoreData.get(); 
}) 
.controller('CtrlB',function(CoreData) { 
    $scope.foo = CoreData.get(); 
}) 
.run(function(CoreData) { 
    CoreData.load(); 
}); 

如果您擔心定時,可以執行上述.get()與上CoreData單個方法的承諾。

要處理的負荷,我們只是通過$http承諾回來,解決時自動通過角填充。

+0

工作,謝謝。 – firstChild 2014-12-04 12:02:17

+0

只有一個問題:它不與的index.html MainController工作,這是不確定的有..是否有可能使其在該控制器的index.html可用? – firstChild 2014-12-04 12:07:50

+0

我不明白,後續呢? – deitch 2014-12-04 12:13:58

相關問題