在Angularjs中将返回值设置为范围变量

时间:2015-02-16 06:59:28

标签: angularjs angularjs-scope angularjs-service

我是anguar.js的新手,我遇到了问题。我需要使用服务a的返回值设置一个变量,然后在它之外访问它。这是我的代码,

fetchService.store_closing_time($scope.currentStore.id, moment(new Date()).format('YYYY-MM-DD'))
      .then (result) ->
        $scope.changedStoreCloseTime = result.close_time
        console.log "############# display inside##########"
        console.log $scope.changedStoreCloseTime
      , (result) ->
        flash.error = result.error
      console.log "#############display outside ##########"
      console.log $scope.changedStoreCloseTime

服务返回数据,但我无法在success函数之外访问$ scope.changedStoreCloseTime。我如何访问它??

我的抓取服务:

 store_closing_time: (id, date) ->
      def = $q.defer()
      $http.get('url').
        then (result) ->
          def.resolve(result.data)

        , (result) ->
          def.reject(result.data)
      def.promise

按预期返回数据..!

先谢谢。

1 个答案:

答案 0 :(得分:1)

我对CoffeeScript有点新鲜,但看起来你在服务返回之前试图访问该值。

由于操作是异步操作,因此一旦值到达,您必须使用promises或callbacks来执行某些操作。