角度js中的自定义过滤器

时间:2018-07-07 04:43:19

标签: javascript html angularjs jsp

我已将 B.JSP 包含在 A.JSP中。 在A.controller中,我有以下过滤器。

A.jsp

<body background="${abc}" ng-app="myApp" onload-directive
    ng-controller="myController"  ng-init="mySwitch=true" disable-keys>
       <div class="modal-body" style="height: 500px !important;overflow-y: auto !important;overflow-x: hidden !important;">
                        <jsp:include page="B.jsp"></jsp:include>
                        </div>
</body>

Bcontroller.js

var app = angular.module('myApp', ['ui.bootstrap']);
app.controller('myController', function($scope, $compile, $timeout, $filter, $window, myService) {
// code

}); app.filter('isempty', function() {
    return function(input) {
        return isEmpty(input) ? '' : input;
    };

    function isEmpty(i) {
        return (i === 'null' || i === undefined);
    }
    });

当我尝试执行 A.JSP 时,我得到了this error

如何避免该错误。

1 个答案:

答案 0 :(得分:0)

如错误说明中所述,

  

此错误是由于$ injector无法解决所需的依赖关系引起的。要解决此问题,请确保已正确定义依赖项并正确拼写。

您必须将过滤器注入到以Filter后缀isemptyFilter结尾的控制器中,如下所示,

(function(angular) {
  'use strict';
angular.module('myApp', [])
  .filter('isEmpty', function() {
    return function(input) {
    console.log(input);
      return isEmpty(input) ? 'emptyfield' : input;
  };

  function isEmpty(i) {
    return (i === 'null' || i === undefined);
  }
  })
  .controller('myController', ['$scope', 'isEmptyFilter' , function($scope, isEmptyFilter) {
    $scope.greeting = 'null';
    $scope.greetingVal = isEmptyFilter($scope.greeting);
  }]);
})(window.angular);
<script src="//code.angularjs.org/snapshot/angular.min.js"></script>
<body ng-app="myApp">
  <div ng-controller="myController">
  <input ng-model="greeting" type="text"><br>
  {{greetingVal}}
</div>
</body>