Page 225 - AngularJS权威教程
P. 225

18.22  出售我们的作品   205


                   <!-- ... -->                                                                      1
                   <div ng-show="images">
                     <div class="col-sm-6 col-md-4"
                       ng-repeat="image in images">
                       <div class="thumbnail">                                                       2
                         <img ng-click="sellImage(image)"
                           data-ng-src="{{image.itemUrl}}" />
                       </div>                                                                        3
                     </div>
                  </div>
                                                                                                     4


                                                                                                     5



                                                                                                     6


                                                                                                     7


                                                                                                     8

                                                图18-17  图像清单                                         9


              18.22  出售我们的作品                                                                         10


                  我们建立在AWS基础上的演示应用还差一步要做,就是从单页应用创建交易。
                                                                                                     11
                  为了开始处理和接受支付,我们要创建一个StripeService,它为我们处理创建费用的工作。
              既然我们想要在模块的.config()方法中配置Stripe,那就需要创建一个.provider()。
                                                                                                     12
                  这个服务自身是非常简单的,因为它把脏活累活都留给Stripe.js库去做了。

                   // ...                                                                            13
                   .provider('StripeService', function() {
                       var self = this;

                       self.setPublishableKey = function(key) {                                      14
                           Stripe.setPublishableKey(key);
                       }
                                                                                                     15
                       self.$get = function($q) {
                         return {
                              createCharge: function(obj) {
                                  var d = $q.defer();                                                16

                                  if (!obj.hasOwnProperty('number') ||
                                      !obj.hasOwnProperty('cvc') ||                                  17
                                      !obj.hasOwnProperty('exp_month') ||
                                      !obj.hasOwnProperty('exp_year')
                                  ) {
                                      d.reject("Bad input", obj);                                    18
   220   221   222   223   224   225   226   227   228   229   230