big*_*ato 3 html select angularjs
这是我的小提琴:http://jsfiddle.net/VSph2/280/
我正在尝试取消选中checkbox
并使用链接重置范围变量的值,但是,它似乎不起作用.有人可以帮忙吗?
使用Javascript:
var app = angular.module('myApp', []);
app.controller('IndexCtrl', ['$scope', function($scope) {
$scope.colors = [
{id: 1, name: "Blue"},
{id: 2, name: "Green"},
{id: 3, name: "Red"}
];
$scope.color_ids = [];
$scope.clearAll = function() {
angular.forEach($scope.color_ids, function(color_id) {
color_id.checked = false; //nothing works!!
color_id.selected = false; //
});
$scope.color_ids = [];
$scope.color_ids.selected = false; //doesn't work either
};
}]);
Run Code Online (Sandbox Code Playgroud)
HTML:
<div ng-controller="IndexCtrl">{{1+1}}
<h2>Products</h2>
<div class="filters col-two">
<a ng-click="clearAll()">Clear all filters</a>
<h3>Color</h3>
<div ng-repeat="color in colors">
{{ color.name }} <input type="checkbox" ng-model="color_ids">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
你永远不会向color_id
数组添加任何东西,所以foreach
不会迭代任何东西.
我更新了你的代码,只使用主颜色数组并在其selected
上添加一个属性:
http://jsfiddle.net/VSph2/283/
HTML:
{{ color.name }} <input type="checkbox" ng-model="color.selected">
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
angular.forEach($scope.colors, function(color_id) {
color_id.selected = false;
});
Run Code Online (Sandbox Code Playgroud)
我在寻找类似的东西时遇到了这个,我的解决方案是重置color_ids对象
$scope.clearAll = function() {
$scope.color_ids = [];
};
Run Code Online (Sandbox Code Playgroud)
您还需要对输入进行以下更改
<input type="checkbox" ng-model="color_ids[color.id]" ng-checked="color_ids[color.id]">
Run Code Online (Sandbox Code Playgroud)
jsfiddle在 https://jsfiddle.net/novelnova/VSph2/756/
归档时间: |
|
查看次数: |
16461 次 |
最近记录: |