【问题标题】:AngularJS : How to update select option value when ng-click?AngularJS:ng-click 时如何更新选择选项值?
【发布时间】:2015-03-24 07:05:13
【问题描述】:

我有一个有效的选择选项,其中有几个值是过滤数据以供搜索。

现在我需要几个链接作为侧边栏,这有助于直接单击并更改上述选择选项

请参考我做的这个链接Website Link


登录示例:

用户:recobee@gmail.com

通过 : kishore

http://proconstruct.co.in/jsearch


Javascript:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  var json = {
    "modules":
        <?php echo $qres; ?>
  };

  $scope.ocw = json;

  var allCategories = json.modules.map(function(item) {
    return item.designation
  });
  var filteredCategories = [];

  var allCities = json.modules.map(function(item) {
    return item.city
  });
  var filteredCities = [];


  allCategories.forEach(function(item) {
    if (filteredCategories.indexOf(item) < 0 && item) {
      filteredCategories.push(item);
    }
  });

  allCities.forEach(function(item) {
    if (filteredCities.indexOf(item) < 0 && item) {
      filteredCities.push(item);
    }
  });

  $scope.search = {
    designation: ""
  }
  $scope.search = {
    city: ""
  }

  $scope.categories = filteredCategories;

  $scope.updateFilter = function(value) {
    $scope.search.designation = value;
  }


  $scope.cities = filteredCities;
  $scope.updateFilter = function(value) {
    $scope.search.city = value;
  }

});

这些是 html 链接:

<div  ng-repeat="designation in categories ">
    <a ng-click="updateFilter(search.designation)"> {{designation}}</a>
</div>

这是正在工作的选择,必须通过链接做出反应:

<select ng-model="search.designation">
    <option value="">All Categories</option>
    <option ng-repeat="category in categories" value="{{category}}">{{category}}</option>
</select>

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat angularjs-ng-click angularjs-ng-model


    【解决方案1】:

    通过快速查看您的代码,我将尝试更改以下内容:

    <div  ng-repeat="designation in categories ">
         <a ng-click="updateFilter(designation)"> {{designation}}</a>
    </div>
    

    我唯一改变的是 updateFilter 函数的参数。

    [更新]

    你还有两个同名的函数:updateFilter

    也试试这个:

    $scope.search = {
        designation: "",
        city: ""
    }
    
    $scope.updateFilterDesignation = function(value) {
        $scope.search.designation = value;
    }
    $scope.updateFilterCity = function(value) {
        $scope.search.city = value;
    }
    

    所以链接应该这样做:ng-click="updateFilterDesignation(designation)"

    这应该可以正常工作。

    【讨论】:

    • Tamy 非常感谢它正在工作,你能帮我了解所有结果链接以显示所有类别:)
    • 我认为当你点击 Show All 时,你需要调用 ng-click="updateFilterDesignation(null)" 来重置 $scope.search.designation 值。
    • Tammy 我做了那个改变,但它没有用,我什至通过了“所有类别”替换为 null 。选择选项的值更改为所有类别但结果未触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2014-11-24
    相关资源
    最近更新 更多