0

ユーザーがアプリ画面全体でいくつかのポイントから検索できるようにしたいだけです。

モデルを永続化するには?

検索用の HTML は次のとおりです。

        <input 
            style="width:80%"
            ng-model="searchKeyword"
            id="search" 
            size="70" 
            type="search" 
            results="5" 
            placeholder="symptôme, maladie, etc." 
        />

このコード スニペットは、いくつかの部分を含む複数の場所にあります。現在、これらのいずれかに入力された値がすべてのフォームで保持されるわけではないようです。

[編集] searchKeyword はコントローラ スコープに属します。

[編集 2] これは、アプリで発生するまさにそのコンテキストで修正したい問題を示すフィドルです: http://jsfiddle.net/stephanedeluca/abHFQ/

何か案が?

4

1 に答える 1

1

カスタム ディレクティブを使用できます。 デモ更新

jsコードの種:

app.directive("search", function(){

  var search = {
    keyword : ""
  }

  return {

    restrict : "EA",

    scope: {},

    template : '<input \
            style="width:80%" \
            ng-model="search.keyword" \
            size="70" \
            type="search" \
            results="5" \
            placeholder="symptôme, maladie, etc." \
        />',

    link : function(scope, element, attrs){
      scope.search = search;
    }


  }
});

アップデート

コントローラーでキーワードを使用するには、. として保存するだけvalueです。

app.controller('MainCtrl', function($scope, searchVal) {
  $scope.search = searchVal;
});

app.value("searchVal", {
  keyword : "I am in controller - no problem!"
})

app.directive("searchDir", function(searchVal){

  return {

    restrict : "EA",

    scope: {},

    template : '<input \
            style="width:80%" \
            ng-model="search.keyword" \
            size="70" \
            type="search" \
            results="5" \
            placeholder="symptôme, maladie, etc." \
        />',

    link : function(scope, element, attrs){
      scope.search = searchVal;
    }

  }

});
于 2014-05-30T09:15:59.863 に答える