2015-04-19 51 views
2

我目前正在成功将音轨资源加载到我网站的“作品”页面。这是我的“作品”控制器是如何实现这一点:Angular - 如何使资源全球化?

'use strict'; 

angular.module('appName') 
    .controller('WorksCtrl', function ($scope, $http, socket) { 
    $scope.works = []; 

    $http.get('/api/works').success(function(works) { 
     $scope.works = works; 
     socket.syncUpdates('work', $scope.works); 
    }); 
    }); 

不过,现在我需要我的歌曲在全球整个站点进行访问。我可以用我的中央app.js中的工厂来实现这个目标吗?如果是这样,怎么办?

+2

我实际上会使用一个服务,因为它们是单身人士,所以请求只会完成一次,并且您可以在注入该服务的任何位置访问相同的信息。 – camou

+1

听起来不错。你能解释一下我如何去做一个服务来做到这一点? –

+1

@LouisCruz我的回答是评论中的内容我只是用工厂代替服务,两者都是定义提供商的简写https://docs.angularjs.org/guide/providers – shaunhusain

回答

5
'use strict'; 

angular.module('appName') 
    .controller('WorksCtrl', function ($scope, WorksFactory) { 
    $scope.WorksFactory = WorksFactory; //can refer to works in the view from WorksFactory.works 
    }); 
    .factory('WorksFactory', function ($http, socket) { 
    var fact = { works: []}; 

    $http.get('/api/works').success(function(works) { 
     angular.copy(works, fact.works); 
     socket.syncUpdates('work', fact.works); 
    }); 
    return fact; 
    });