0

我正在尝试在我制作的 ruby​​ on rails 应用程序上制作可搜索的帖子列表。我有 AngularJS 在应用程序上工作。所有帖子都保存在@posts 中的rails 上。我将如何让 AngularJS 过滤呢?以下是相关观点:

<h1>Posts</h1>
<div ng-app>
    <div ng-controller = "PostCtrl">
      <input placeholder = "Search Post Titles", ng-model="searchText">
        <div ng-repeat="post in posts | filter:searchText">
          <h2>{{post.title}}</h2>
          <p>{{post.text}}</p>
        </div>
    </div>
</div>

我不确定如何用@posts 中的对象填充角度数组帖子。

4

2 回答 2

1

看来您的代码按原样工作。 这是一个似乎重新创建您的代码的 plunker 。

如果您想在 post 对象中进行过滤,可以使用以下语法:

ng-repeat="post in posts | filter:{ text: searchText }"

以上将仅搜索 的text属性的值post

于 2013-11-07T22:59:18.710 回答
1

继续 Davin Tryon 的回答,你可以这样尝试。首先在控制器中使用 ng-init="init()" :

<div ng-controller = "PostCtrl" ng-init="init( <%= @posts.to_json %> )">

然后在您的控制器中,您可以执行以下操作:

$scope.init = (posts) ->
    $scope.posts = angular.fromJson(posts)

然后帖子将是一个 JavaScript 对象,可以在您的范围内访问它,就像您使用角度资源查询它一样。

如果您想包含帖子的关联(比如评论),您可以查看Rails 文档中的 to_json(或“as_json”)和 :include 选项

于 2014-01-26T20:59:36.267 回答