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に、新しい投稿が作成されるたびに上記のJSONファイルにオブジェクト(名前/コンテンツ属性を含む)を保存させて、検索が実際に意味のあるデータを実行するようにするだけです。私はRails/JSON /コンピューターに不慣れで、これを行う方法がわかりません。投稿コントローラー、おそらくそれらのrespond_toブロックの1つにあると思いますが、誰かがこれを行う正しい方法を教えてくれれば幸いです。

4

1 に答える 1

1

インスタント検索またはオートコンプリート機能だけが必要な場合は、Angular.jsやその他のJSMVCフレームワークを使用しないでください。代わりに、@charlieflが提案したようにjQueryを使用することを検討してください。簡単です。単純なAjax呼び出しでそれが行われます。

JS MVCフレームワークは重いため、それに合わせてアーキテクチャを下から設計する必要があります。そのような単一の機能には価値がありません。

この関数をjQueryで機能させるには、基本的に次のようにします。

  1. 1つ以上の文字を入力して、検索ボックスでイベントを聞きます
  2. 文字をキャッチし、jQuery Ajaxを使用して、RailsのPostsControllerのメソッドにPOSTリクエストを送信します。たとえば、「検索」と言います。
  3. このメソッドをJSONに応答させます。
  4. サーバーの応答に従ってDOMを更新します。
于 2013-02-19T04:43:40.120 に答える