现在我有几个按钮会将值插入localStorage。我以为我可以获取值并将其插入ng-repeat行以更改过滤。
如果我使用普通过滤,这可行:
<div class='segment' ng-repeat="x in names | filter:x.bodyType='Buggy'">
但这不起作用:
<div class='segment' ng-repeat="x in names | filter:x.bodyType='<script>var show = localStorage.getItem('show'); show</script>'">
我没有使用Jquery或除AngularJS之外的任何其他JS或CSS框架。不使用PHP。这是一个简单的HTML5用于Web应用程序。
答案 0 :(得分:1)
动态构建对象并将其传递给过滤器。
$scope.show = 'A';
$scope.base = function() {
return $scope.show;
};
$scope.bodyType = function() {
return {bodyType: $scope.base()};
};
$scope.objs = [{bodyType: 'A'}, {bodyType: 'B'}];
&#13;
<button ng-click="show='B'">Button</button>
<div ng-repeat="x in objs | filter: bodyType()">{{x}}</div>
&#13;
答案 1 :(得分:0)
我不认为Angular能够插入表达式<script>...</script>
。我建议您在控制器中使用localStorage服务获取值,如:
$scope.bodyType = function() {
localStorage.getItem('show');
};
<div class='segment' ng-repeat="x in names | filter:x.bodyType='{{bodyType()}}'">