AngularJS-कस्टम फ़िल्टर में नियंत्रक से पहुंच का दायरा




angularjs-scope angular-filters (2)

मेरे पास विभिन्न $scopes साथ एक controller मुझे कस्टम फ़िल्टर में इन $ scopes में से एक का उपयोग करने की आवश्यकता है:

app.controller('AppController',
    function($scope) {
      $scope.var1 = 'Some data1';
      $scope.var2 = 'Some data2';
    }
  );

app.filter('myCustomFilter', function ($filter) {

  return function (date) {
    var date = date;
  };
});


<tr ng-repeat="data in MyData" ng-class="{true: 'green', false:'red'}[data.Date | myCustomFilter]">

</tr>

मैं अपने myCustomFilter में $ scope.var1 कैसे पार myCustomFilter ??


आपको फिल्टर को वांछित गुंजाइश विशेषता प्रदान करनी होगी।

आप ऐसा कर सकते हैं:

फिल्टर:

app.filter('myCustomFilter', function ($filter) {

  return function (date,myVar1) {
/* Do some stuff with myVar1 */
  };
});

HTML:

<tr ng-repeat="data in MyData" ng-class="{true: 'green', false:'red'}[data.Date | myCustomFilter:var1]">

</tr>

var app = angular.module('app', []);


app.controller('AppController',
  function($scope) {
    $scope.var1 = 2;
    $scope.var2 = 3;

    $scope.MyData = [{
      Date: 1
    }, {
      Date: 2
    }, {
      Date: 3
    }]

  }
);

app.filter('myCustomFilter', function($filter) {

  return function(date, scopeValue) {
    var date = date;
    return date * scopeValue
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body>
  <div ng-app="app">
    <div ng-controller="AppController">

      <li ng-repeat="data in MyData">
     Date:  {{data.Date}} | Date after myCustomFilter: {{data.Date | myCustomFilter : var1}}
      </li>
    </div>
  </div>


</body>








angular-filters