Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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
Javascript 用于范围滑块的离子注入模型_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

Javascript 用于范围滑块的离子注入模型

Javascript 用于范围滑块的离子注入模型,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我目前正在做一个爱奥尼亚项目,在那里你可以搜索一些二手车。 该应用程序还包括一些带有范围滑块的过滤器,可按如下方式设置值: 我现在的问题是,过滤器在启动时设置为默认值,即: 用户设置={price:{min:0,max:200000} 在jade文件中使用的: .item.range.range-positive input(type="range", min="{{filter.range.min}}", max="{{filter.range.max}}", step = "{{fil

我目前正在做一个爱奥尼亚项目,在那里你可以搜索一些二手车。 该应用程序还包括一些带有范围滑块的过滤器,可按如下方式设置值:

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

用户设置={price:{min:0,max:200000}

在jade文件中使用的:

.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。但在启动时,滑块保持如下状态:

我已经知道,滑块是在打开过滤器时,在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 = {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))
过滤器对象包含硬编码的最小值和最大值


希望这有助于澄清…

您是否尝试过在控制器中初始化对象?@NIMESH如果您指的是启动时初始化的“用户设置”。还是我误解了你的意思?你能发布你的控制器代码吗?是的,当然,这只是有点棘手,因为项目变得有点复杂。:)对于任何试图实现范围滑块的读者,您可能会发现我问的这个问题很有价值,特别是因为它有一个工作示例。祝你好运您是否尝试在控制器中初始化对象?@NIMESH如果您指的是“用户设置”,则它们在启动时初始化。还是我误解了你的意思?你能发布你的控制器代码吗?是的,当然,这只是有点棘手,因为项目变得有点复杂。:)对于任何试图实现范围滑块的读者,您可能会发现我问的这个问题很有价值,特别是因为它有一个工作示例。祝你好运