0
$scope.$watch("checkbox", function(newVal, oldVal, scope) {
var newmax = calcNewMax();
var slider = angular.element(document.querySelector("#slider"));
var parent = slider.parent();
slider.remove();
var newSlider = '<md-slider id="slider" flex="100" class="md-warn" md-discrete ng-model="size" step="10" min="100" max="' + newmax + '" aria-label="rating"> </md-slider>';
parent.prepend($compile(newSlider)($rootScope));
$scope.size = 500;
});
角度のある材料のmd-slider
を使用しています。 私が実際に欲しいのは、チェックボックスを介してユーザーの選択に基づいてスライダの最大値を更新することです。 max
属性の新しい値を設定するだけで初めての試みは機能しませんでした(aria-valuemax
でも機能しませんでした)。angle/angle-material:HTMLスライダを置き換えてもng-modelが更新されない
そこで、完全なスライダを削除して置き換えることにしました。 上記のコードが動作します。
しかし、私が新しいスライダを追加すると、$scope.size
にバインドされたng-model
はもう同期されていないようです(私はその値にバインドするラベルを持ち、更新しません)。もちろん、私は既に$watch
にいるので、$apply()
は機能しません。
恐ろしい@Patrykを比較し、私のミスください。 '.attr(" max "、newmax)'で最大値を追加することでした。それは私には起こりませんでした。私はただ角度を直接使うことができました:)ありがとう! – faboolous