AngularJS:返回在工厂中再次使用的对象

时间:2014-09-12 18:21:51

标签: angularjs promise factory

我正在尝试围绕cordova media plugin创建一个包装器/工厂,这需要您创建一个新的Media对象,然后再次使用它来暂停,停止,播放等。

工厂+ link to actual code

.factory('$cordovaMedia', ['$q', function ($q) {

return {
  newMedia: function (src) {
    var q = $q.defer();
    var mediaStatus = null;

    var media = new Media(src,
      function (success) {
        q.resolve(success);
      }, function (error) {
        q.reject(error);
      }, function (status) {
        mediaStatus = status;
      });

    return {
      media: media,
      mediaStatus: mediaStatus,
      promise: q.promise
    }
  },


  play: function (source) {
    return source.play();
  },

  stop: function (source) {
    return source.play();
  }
  }]);

工厂如何使用此实现的示例用法:

var media = $cordovaMedia.newMedia('some/src.mp3').media

$cordovaMedia.play(media);
$cordovaMedia.stop(media);

正如您所看到的,我正在创建一个新的Media对象,并将其分配给变量并在工厂中再次使用它。

我想知道是否有更好的方法可以做到这一点?主要是AngularJS在工厂中创建对象的最佳方法是什么,必须通过同一工厂再次使用?

0 个答案:

没有答案