Angular,通过输入 属性 作为文本输入进行排序

Angular, sort by enting property as text input

我想按评级、日期等不同属性对评论列表进行排序... 但不使用按钮并在输入中获取 属性 作为文本。

默认情况下 属性 是评级,但 ng-repeat 不发布任何东西。

我的代码是:

<div ng-controller="controller as Ctrl">
       <p>SortBy: <input type="text" name="input" ng-model="Ctrl.dish.sortProperty"></p>
<blockquote ng-repeat="comment in Ctrl.dish.comments | orderBy:'{{Ctrl.dish.sortProperty}}'">
                        <p>{{comment.rating}}</p>
                        <p>{{comment.comment}}</p>
                        <footer>{{comment.author}} ,<cite title="Source Title">{{comment.date| date:'mediumDate'}}</cite></footer>
 </blockquote>
</div>

控制器为:

<script>

        var app = angular.module('myApp',[]); 
        app.controller('controller', function() {
            var dish={
                          sortProperty:'rating',
                           comments: [
                               {
                                   rating:5,
                                   comment:"blablalbla",
                                   author:"John Lemon",
                                   date:"2012-10-16T17:57:28.556094Z"
                               },
                               {
                                   rating:4,
                                   comment:"blablabla",
                                   author:"Paul McVites",
                                   date:"2014-09-05T17:57:28.556094Z"
                               },
                               {
                                // more comments
                               }
                           ]};
                    this.dish = dish; });
</script>

去掉单引号和插值{{ }}:

<blockquote ng-repeat="comment in Ctrl.dish.comments | orderBy: Ctrl.dish.sortProperty">