0

だから私はオブジェクトをスコープする必要があります

    $scope.hf_directory = data.features;
    $scope.brylanty = data.features;

実際には同じデータが含まれていますが、時計がどのように機能するかを知りたいので、プロジェクトで使用できます。

そして、filter:search を使用する hf_directory を監視したいので、入力フィールド ng-model="search" に何かを入力した後に scope.brylanty を更新します。

私はこのようなことをしようとしましたが、変更を加えていません

  $scope.$watch('hf_directory', function (newValue, oldValue, $scope) {
if(newValue) {
  $scope.brylanty = newValue;
}
});

両方のスコープ オブジェクトは ng-repeat ループによって表示されます。最初に filter:search を別の何も使用しません。別の filter:search を使用できることはわかっていますが、watch の使用方法を学びたい ;)

私のオブジェクトは geojson データです。同じ値が含まれています。geojson は以下のようになります。

  {
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },

"features": [
{ "type": "Feature", "properties": { "name": "SomeName"}, "geometry": { "type":      "Point", "coordinates": [ 11.410585, 11.293361 ] } },
{ "type": "Feature", "properties": { "name": , "SecondName": { "type": "Point",   "coordinates": [ 11.410585, 11.293361 ] } }, .......

]
}

あなたのアドバイスの後、私はこれを試しました

 $scope.search = {};

 $scope.$watch('search', function (newVal) {

        $scope.brylanty = newVal;

});

この

$scope.$watch('search', function (newValue, oldValue, $scope) {
    if (newValue) {
        $scope.brylanty = newValue;
    }
});

しかし、良い結果が得られず、どちらの場合も、何かを入力し始めると、オブジェクト brylanty が消えますか?

4

2 に答える 2

0

UPDATE追加されたデモ

ドキュメントによると

次のようなことを行うことで、任意の変数を見ることができます

$scope.$watch(function(){

    return $scope.hf_directory; // or Directories.hf_directory if Directory is a factory/service 

}, function(newVal, oldVal){
    if(newVal != oldVal){
        $scope.newestValue = newVal;  // Do some cool UI
    }

}, true); // true to check object equality (see below)

object equalityは angular.equal Sourceと同等です

これが役立つことを願っています。

于 2015-01-06T01:56:01.840 に答える