Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将money rails与AngularJS结合使用_Ruby On Rails_Angularjs - Fatal编程技术网

Ruby on rails 将money rails与AngularJS结合使用

Ruby on rails 将money rails与AngularJS结合使用,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,我正在将Rails 3.2应用程序中的一些表单转换为使用AngularJS,这样我就可以进行实时计算等等。在我的rails应用程序中,我用来处理货币。这会将所有货币字段视为由美分组成的整数 当我通过JSON将所有信息发送到AngularJS模板时,这就成了一个问题。现在我的表格都是以美分为单位的,而我想要的是美元和美分 我已经把转换放在我的AngularJS控制器中,所以当我从服务器获取数据时,我会在更新之前将其从美分转换为美元&美分,反之亦然。代码如下: # Edit Investor win

我正在将Rails 3.2应用程序中的一些表单转换为使用AngularJS,这样我就可以进行实时计算等等。在我的rails应用程序中,我用来处理货币。这会将所有货币字段视为由美分组成的整数

当我通过JSON将所有信息发送到AngularJS模板时,这就成了一个问题。现在我的表格都是以美分为单位的,而我想要的是美元和美分

我已经把转换放在我的AngularJS控制器中,所以当我从服务器获取数据时,我会在更新之前将其从美分转换为美元&美分,反之亦然。代码如下:

# Edit Investor
window.InvestorEditCtrl = ($scope, $routeParams, $location, Investor, Common) ->
  console.log 'InvestorEditCtrl'

  # Setup variable for common services(factory)
  $scope.common = Common

  $scope.master = {}  # Initialise our main object hash
  investor_id = $routeParams.investor_id   # Get the ID of the investor we are editing from the URL

  # Get the investor information & assign it to the scope master object
  console.log 'Get JSON'
  $scope.investor = new Investor.show({investor_id: investor_id}, (resource) ->
    # copy the response from server response (JSON format) to the scopes master
    $scope.master = angular.copy(resource)

    # Convert price_cents to dollars
    $scope.investor.price_cents /= 100
  )

  # Update the investor passing the JSON back to the server.    
  $scope.update = (investor) ->

    # Convert price_cents to cents
    investor.price_cents *= 100

    $scope.master = angular.copy(investor)

    investor.$update({investor_id: investor_id}, (t) ->
      $location.path('/investors/' + t.id)
    )

有更好的方法吗?

您可以编写一个过滤器或一个指令,将其转换为HTML中所需的格式。过滤器的外观如下所示:

app.filter('centsToDollars', function() {
  return function(input) {
    var out = input / 100;
    return out;
  }
});
<p>{{investor.price_cents | centsToDollars}}</p>
然后,在html中,无论您想在哪里显示美分,都可以这样称呼它:

app.filter('centsToDollars', function() {
  return function(input) {
    var out = input / 100;
    return out;
  }
});
<p>{{investor.price_cents | centsToDollars}}</p>
然后,在html中执行以下操作:

<input type="text" my-cents-to-dollars ng-model="investor.price_cents" />

您可以编写过滤器或指令,将其转换为HTML中所需的格式。过滤器的外观如下所示:

app.filter('centsToDollars', function() {
  return function(input) {
    var out = input / 100;
    return out;
  }
});
<p>{{investor.price_cents | centsToDollars}}</p>
然后,在html中,无论您想在哪里显示美分,都可以这样称呼它:

app.filter('centsToDollars', function() {
  return function(input) {
    var out = input / 100;
    return out;
  }
});
<p>{{investor.price_cents | centsToDollars}}</p>
然后,在html中执行以下操作:

<input type="text" my-cents-to-dollars ng-model="investor.price_cents" />