gpt4 book ai didi

javascript - AngularJS 过滤器问题 : Compare only part of string (substring)

转载 作者:行者123 更新时间:2023-11-27 23:57:51 25 4
gpt4 key购买 nike

问题发生在我使用字符串“home”和“home 123”过滤数据时,如果我过滤“home”,则与“home 123”相关的内容也会被选中。这意味着如果我过滤子字符串的“home”, bool 值即使对于“home 123”也会返回 true。 http://jsbin.com/jolik/1/edit

但是如果我对与“home”和“product”无关的字符串使用过滤器,我会得到预期的确切结果。看这个 JS Bin 演示 http://jsbin.com/rusab/1/edit

请帮忙解决这个问题。在此先感谢您的帮助。

索引.html:

<!DOCTYPE html>
<html ng-app="myapp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>

</head>

<body ng-controller="MyApp">
<select ng-model="keyToDisplay" ng-options="key as key.key for key in keys"></select>
<span>{{keyToDisplay.key}}</span>


<div ng-repeat="item in data | filter:{'key':keyToDisplay.key}">
<h3>{{item.key}}</h3>
<p>{{item.value}}</p>
</div>
<hr />

</body>
</html>

工作代码:app.js

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

app.controller('MyApp', ['$scope', function($scope) {
$scope.data = [
{key:"home",value:"hk1"},
{key:"home",value:"hk2"},
{key:"home",value:"hk3"},
{key:"home",value:"hk4"},
{key:"product",value:"pk1"},
{key:"product",value:"pk2"},
{key:"product",value:"pk3"},
{key:"product",value:"pk4"},
{key:"service",value:"sk1"},
{key:"service",value:"hk2"},
{key:"service",value:"hk3"},
{key:"service",value:"hk4"}
];

$scope.datafiltered = _.groupBy($scope.data, 'key');

$scope.keys = _.unique($scope.data, 'key');

$scope.keyToDisplay = $scope.keys[0];
}]);

问题代码:app.js

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

app.controller('MyApp', ['$scope', function($scope) {
$scope.data = [
{key:"home",value:"hk1"},
{key:"home",value:"hk2"},
{key:"home",value:"hk3"},
{key:"home",value:"hk4"},
{key:"home 123",value:"pk1"},
{key:"home 123",value:"pk2"},
{key:"home 123",value:"pk3"},
{key:"home 123",value:"pk4"},
{key:"service",value:"sk1"},
{key:"service",value:"hk2"},
{key:"service",value:"hk3"},
{key:"service",value:"hk4"}
];

$scope.datafiltered = _.groupBy($scope.data, 'key');

$scope.keys = _.unique($scope.data, 'key');

$scope.keyToDisplay = $scope.keys[0];
}]);

最佳答案

要完全等价,请使用 extended filter .

在过滤器参数之后查看 true

  <div ng-repeat="item in data | filter:keyToDisplay.key:true">
<h3>{{item.key}}</h3>
<p>{{item.value}}</p>
</div>
<hr />

更多详情请访问 filter docs

关于javascript - AngularJS 过滤器问题 : Compare only part of string (substring),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com