【发布时间】:2017-11-19 18:38:57
【问题描述】:
我在问是否有可能在 angular 中做一些事情
<div ng-app="app">
<div ng-controller="mainController">
<ul ng-repeat="movie in movies |searchFilter:Filter.genre | searchFilter:Filter.name |searchFilter:Filter.pic ">
<li>{{movie.name}}</li>
</ul>
<h2>genre</h2>
<div>
<label>Comedy </label><input type="checkbox" ng-model="Filter.genre.Comedy" ng-true-value="Comedy" data-ng-false-value=''/><br/>
</div>
<h2>PIC</h2>
<label>aa</label><input type="checkbox" ng-model="Filter.pic.aa" ng-true-value="ciao" data-ng-false-value=''/><br/>
<h2>Name</h2>
<label>Shrek</label><input type="checkbox" ng-model="Filter.name.Shrek" ng-true-value="The God" data-ng-false-value=''/><br/>
</div>
</div>
我正在为不同字段(大小、名称、类型)的过滤器创建一个复选框 我有一个可用尺寸、名称和流派的列表。 问题出在 ng-model 上,我尝试将其写为“Filter.genre.genre.name”或 "Filter["genre"+genre.name]" 和 "Filter.genre[genre.name]" 但还是不行。 js.file 是
var app =angular.module('app', []);
app.controller('mainController', function($scope) {
$scope.movies = [{name:'Shrek', genre:'Comedy',pic:"cc"},
{name:'Die Hard', genre:'Comedy',pic:"aa"},
{name:'The Godfather', genre:'Drama',pic:"ciao"},
{name:'The Godher', genre:'Comedy',pic:"lel"}];
$scope.genres = [{name:"Comedy"},{name:"Action"},{name:"Drama"}];
});
app.filter('searchFilter',function($filter) {
return function(items,searchfilter) {
var isSearchFilterEmpty = true;
//searchfilter darf nicht leer sein
angular.forEach(searchfilter, function(searchstring) {
if(searchstring !=null && searchstring !=""){
isSearchFilterEmpty= false;
}
});
if(!isSearchFilterEmpty){
var result = [];
angular.forEach(items, function(item) {
var isFound = false;
angular.forEach(item, function(term,key) {
if(term != null && !isFound){
term = term.toLowerCase();
angular.forEach(searchfilter, function(searchstring) {
searchstring = searchstring.toLowerCase();
if(searchstring !="" && term.indexOf(searchstring) !=-1 && !isFound){
result.push(item);
isFound = true;
// console.log(key,term);
}
});
}
});
});
return result;
}else{
return items;
}
}
});
如果我使用名为
的 ng-models 为喜剧、动作和戏剧领域制作 3 个不同的标签ng-model="Filter.genre.Comedy" ; ng-model="Filter.genre.Action" 和 ng-model="Filter.genre.Drama"
它可以工作,但如果我尝试将它写入 ng-repeat 它将不起作用。我希望更清楚
【问题讨论】:
-
您是在问是否可以使用 ngrepeat 实现复选框?
-
请编辑问题。你根本不清楚你的问题。
-
显示你的控制器的一些代码
标签: angularjs checkbox angularjs-ng-repeat angular-ngmodel angularjs-filter