AngularJS : 如何在 ng-click 时更新 select 选项值?
AngularJS : How to update select option value when ng-click?
我有一个可用的 Select 选项,其中的值很少 过滤 搜索数据。
现在除了侧边栏,我还需要几个链接,这有助于直接单击并更改上面的内容Select 选项
请参考我做的这个LinkWebsite Link
登录示例:
User : recobee@gmail.com
Pass : 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>
这是正在工作的 Selection,必须通过链接做出反应:
<select ng-model="search.designation">
<option value="">All Categories</option>
<option ng-repeat="category in categories" value="{{category}}">{{category}}</option>
</select>
通过快速查看您的代码,我将尝试更改以下内容:
<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;
}
所以 link 应该这样做:ng-click="updateFilterDesignation(designation)"
这应该很有希望。
我有一个可用的 Select 选项,其中的值很少 过滤 搜索数据。
现在除了侧边栏,我还需要几个链接,这有助于直接单击并更改上面的内容Select 选项
请参考我做的这个LinkWebsite Link
登录示例:
User : recobee@gmail.com
Pass : 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>
这是正在工作的 Selection,必须通过链接做出反应:
<select ng-model="search.designation">
<option value="">All Categories</option>
<option ng-repeat="category in categories" value="{{category}}">{{category}}</option>
</select>
通过快速查看您的代码,我将尝试更改以下内容:
<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;
}
所以 link 应该这样做:ng-click="updateFilterDesignation(designation)"
这应该很有希望。