按基于输入文本的元素排序,AngularJS

时间:2016-05-08 14:06:32

标签: javascript angularjs

我正在尝试根据输入文本订购anguarjs中的项目列表,因此如果我在输入“author”中写入该列表将由作者订购

我的代码就是这个

for($i = $startCounter; $i <= $loopcounter; $i++)
{
if ($_GET['page'] == $i) {
     $pagination .= '<li><span class="current">' . $i . '</span></li>';
} else {
    $pagination .= '<li><a href="'. $agencyurl .'/search/'. $_REQUEST['bed'] .'/'. $i .'/'. $_REQUEST['perpage'] .'/'. $_REQUEST['area'] .'">'. $i .'</a></li>';
  }
}

它不起作用,我已经搜索但找不到这种例子。

4 个答案:

答案 0 :(得分:5)

您必须在控制器中定义变量:

<input type="text" ng-model="dishDetailCtrl.sort">

然后,您必须定义ng-model指令以将输入值绑定到此变量:

<div class="well" ng-repeat="comments in dishDetailCtrl.dish.comments | orderBy: dishDetailCtrl.sort">

然后你可以应用过滤器:

{{1}}

答案 1 :(得分:1)

您的代码中存在一个非常小的错误。 orderBy表达后应该没有空格。

<li ng-repeat = "comment in dishCtrl.dish.comments | orderBy:sort">

如果上面没有工作尝试,请将其放在单引号中,例如'sort'

答案 2 :(得分:0)

您需要在此输入上绑定一个操作,它可以是简单的ng-enter指令或提交按钮。

答案 3 :(得分:0)

因为您正在使用控制器作为语法,正如我从ng-repeat中看到的那样,更改

<input type = "text" ng-model = "sort">

<input type = "text" ng-model = "dishCtrl.sort">

还要更新ng-repeat:

<li ng-repeat = "comment in dishCtrl.dish.comments | orderBy: dishCtrl.sort">