我对JavaScript&角。 所以这可能是一个愚蠢的问题,但这里有......
我需要执行一个函数来对输入数据执行数据转换并创建数组&页面将使用的对象。我只能在执行此功能后处理我的页面。
请注意,此函数不会被任何角度伪像直接使用,但其输出将为。
请指教。感谢
$scope.prepped_data = function (data) {
// code to generate new data structures //
$scope.data1 = {};
$scope.data2 = {};
};
答案 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>
希望它有所帮助, 最好的。