Tôi đang sử dụng ECMAScript6 trong một dự án và đang cố gắng tạo Bộ lọc góc. Dưới đây là nỗ lực của tôi, tuy nhiên tôi nhận được lỗi sau trong bảng điều khiển: Không thể đặt thuộc tính 'PassFilter' không xác địnhECMAScript6 Bộ lọc AngularJS
Tôi mới dùng cho cả ES6 và Góc. Tôi đã phải khởi động góc như vậy do hạn chế di sản.
myAngularModule = angular.module("MyModule");
angular.element(document).ready(function() {
var myDiv = $("#myAngularDiv");
angular.bootstrap(myDiv, ["MyModule"]);
});
myAngularModule.filter('PassFilter', APP.filters.PassFilter);
/* Filter is in a separate file: */
class PassFilter {
constructor(input) {
var split = input.split('');
var result = "";
for (var i = 0; i < split.length; i++) {
result += "*";
}
return result;
}
}
APP.filters.PassFilter = PassFilter;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div id="myAngularDiv">
<input type="password" ng-model="password">
<span>{{password | PassFilter}}</span>
</div>
Dựa trên nhận xét của bạn, có vẻ như APP.filters là undefined. – POZ
@POZ - có nó được định nghĩa trong một tệp khác, tôi chỉ hiển thị một đoạn trong trường hợp này là các công cụ chính:/ – user1809790
Vâng, tôi hiểu điều đó. Điều tôi đang nói là: nó có thể là thư viện của bạn không được nạp đúng thứ tự không? Ví dụ, tôi sẽ đặt thẻ kịch bản góc vào cuối HTML của tôi (thực hành tốt nhất với các tập lệnh bên ngoài). – POZ