离子初始化范围滑块的ng-model

时间:2016-11-09 11:32:46

标签: javascript angularjs ionic-framework

我目前正在开展一个Ionic项目,您可以搜索一些二手车。 该应用程序还包括一些带范围滑块的过滤器,用于设置值,如下所示:

enter image description here

我现在的问题是,启动时过滤器设置为默认值:

user_settings = {price:{min:0,max:200000}}

在玉文件中使用:

.item.range.range-positive
  input(type="range", min="{{filter.range.min}}", max="{{filter.range.max}}", step = "{{filter.range.step}}", ng-model="user_settings[filter.id].max", id= "handle")

重置此值可正常工作并将滑块设置为0和200000.但在启动时,滑块仍然如下所示:

enter image description here

我之前已经明白,在打开过滤器时和DOM元素为零之前,首先会设置滑块。但是当我打开过滤器时,会对DOM进行评估,但是该值设置为100而不是ng-models值。

我尝试了ng-init并重新加载示波器,但这只是没有用......

无论如何都要在启动时创建所有DOM元素吗?

编辑1:

以下是启动应用程序的控制器代码:

angular.module("starter.controllers", [])
  .controller "AppCtrl", ($scope, $ionicModal, $timeout, FilterService, $state) ->
    $scope.filters = FilterService.settings
    $scope.sort = FilterService.user_settings['sort']
    $scope.resetFilters = ->
      FilterService.resetFilters()
      $state.go('app.cars', {}, {reload: true})
    $scope.resetFilters()

其中resetFilters()调用以下代码:

user_settings的初始值:

user_settings = {sort: {attribute: 'offerPrice', direction: 'asc'}, price:{}, firstregistration:{}, power_ps:{},mileage:{}, emission:{}}

重置过滤器的代码:

resetFilter: (filter) ->
    if filter.id in ['price', 'firstregistration', 'power_ps', 'mileage', 'emission']
      user_settings[filter.id].min = filter.range.min
      user_settings[filter.id].max = filter.range.max
    else
      delete user_settings[filter.id]

  resetFilters: ->
    console.log(user_settings)
    for filter_name, user_setting of user_settings
      if filter_name == 'sort'
        continue
      @resetFilter(@find(filter_name))

过滤器对象包含硬编码的最小值和最大值。

希望有助于澄清...

0 个答案:

没有答案