Tôi đã tích hợp plugin đã chọn vào ứng dụng angularjs của mình. App.js của tôi trông như thế này.AngularJS chọn plugin, đã chọn: cập nhật không hoạt động, hoạt động trong trình duyệt
myApp.directive('chosen', function() {
var linker = function (scope, element, attr) {
scope.$watch('countriesList', function() {
$('#countries').trigger('chosen:updated');
console.log('I acctuallty get in here');
})
element.chosen();
};
return {
restrict: 'A',
link: linker
};
})
chọn vẻ bề ngoài của tôi như thế này
<div class="control-group">
<label for ="countries" class="control-label">Countries: </label>
<div class="controls">
<select chosen ng-model="countries" id="countries" ng-options="country.name for country in countriesList" data-placeholder="Select Countries" multiple class="span chzn-select"></select>
</div>
</div>
Vấn đề là khi tải trang đầu tiên không có gì được hiển thị trong các lựa chọn. Các tùy chọn có khi bạn kiểm tra phần tử.
Chỉ có vẻ như chosen:updated
không hoạt động. Tôi đặt console.log()
trong đồng hồ và nó đang bắn. Nếu tôi chạy .trigger('chosen:updated')
trong trình duyệt, nó hoạt động hoàn hảo. Tôi đã thử element.trigger
nhưng điều đó cũng không hoạt động. Rất bực bội!
Có 'console.log' bên trong ngọn lửa' $ watch' của bạn mỗi lần bạn thực hiện thay đổi không? Hay nó chỉ cháy một lần? – Oleg
nó kích hoạt lần đầu tiên tôi tải trang. –
Bạn thêm một mục vào 'countriesList', nhưng nó không cập nhật? – tasseKATT