Mã của tôi hoạt động trong Angular 1.2, nhưng không hoạt động ở 1.3 và tôi không thể tìm ra những gì đã thay đổi theo góc cạnh và những gì tôi nên thay đổi trong mã của mình để sửa lỗi.Điều gì đã thay đổi trong góc 1.3 đã phá vỡ mã của tôi?
Tôi đã thiết lập plunkr example.
Các mã trong HTML chỉ đơn giản là
{{ 'guy' | change }}
Các mã javascript là:
angular.module('app').service('MyService', function($timeout){
var data = null;
$timeout(function(){
data = 'this is data';
},2000);
this.transform = function(){
return data;
}
});
angular.module('app').filter('change', function(MyService){
return function(input){
return MyService.transform();
}
});
Ý tưởng là kết quả của bộ lọc phụ thuộc vào phản ứng async.
Trong góc 1,2, chế độ xem được cập nhật tương ứng. Trong Angular 1.3 nó không.
Để chuyển đổi giữa góc 1,2 và góc 1,3 - bạn cần thay đổi tuyến đường thành góc ở đầu tệp HTML. giữa
<script data-require="[email protected]" data-semver="1.3.0" src="//code.angularjs.org/1.3.0/angular.js"></script>
và điều này
<script data-require="[email protected]" data-semver="1.2.0" src="//code.angularjs.org/1.2.0/angular.js"></script>
Tôi cũng đã cố gắng 1.3.1 - cùng một vấn đề.
Đây là phỏng đoán, nhưng '$ watch' trước đây có thể đã có trong toàn bộ cụm từ '' guy '| thay đổi' và bây giờ vì lý do hiệu quả chỉ là trên '' guy'', mà rõ ràng là không thay đổi. Tại sao bạn sử dụng một bộ lọc cho việc này? Bạn không thể chỉ làm '{{asyncData || 'guy'}} 'và sau đó dính vào bộ điều khiển của bạn' $ timeout (function() {$ scope.asyncData = 'newdata';}, 2000); ' – jdotjdot