0

这似乎是一个已经被问到的问题,但我找不到我想要的东西,所以我会继续问。

我正在尝试使用 angular.js 在我的网站上创建即时搜索功能。我希望用户能够立即搜索帖子(理想情况下是按标题和内容),所以在听说angular 能够做到这一点后,我试了一下。

我的 posts.js.coffee 文件中有这样的内容:

@PostListCtrl = ($scope, $http) ->
  $http.get("posts.json").success (data) ->
    $scope.posts = data

这在它引用的 JSON 文档中发生了(只是为了确保它正在工作——确实如此)。

data =
    [
    name: "Blog ex"
    content: "This is my example post."
    ,
    name: "Test posting"
    content: "A different ex post"
    ,
    name: "Test3"
    content: "This has some unusual, unique vocabulary."
    ]

现在我要做的就是让 Rails 在每次创建新 Post 时在上述 JSON 文件中保存一个对象(具有名称/内容属性),以便搜索实际上运行有意义的数据。我是 Rails/JSON/计算机的新手,不知道如何做到这一点。我猜它在帖子控制器中,也许在其中一个 respond_to 块中,但如果有人能指出我这样做的正确方法,我将不胜感激。

4

1 回答 1

1

如果您想要的只是即时搜索或自动完成功能,则不应使用 Angular.js 或任何其他 JS MVC 框架。相反,请考虑按照@charliefl 的建议使用 jQuery,这很容易。一个简单的 Ajax 调用就可以完成。

JS MVC 框架很重,你需要从底层设计架构以适应它们。不值得这么单一的功能。

为了使这个函数在 jQuery 中工作,基本上:

  1. 听搜索框上的事件,说输入一个或多个字符
  2. 捕捉字符并使用 jQuery Ajax 向 Rails 中 PostsController 中的方法发送 POST 请求,例如“搜索”
  3. 使此方法响应 JSON。
  4. 根据服务器响应更新 DOM。
于 2013-02-19T04:43:40.120 回答