2014-07-25 35 views
0

我正在嘗試使用angularJS v-1.2.20來實現angular-slider角度滑塊的角度js v-1.2.20問題

<div ng-controller="ItemCtrl"> 
    <slider custom-floor="item.minAge" floor="100" custom-ceiling="item.maxAge" ceiling="1000" step="10" precision="2" ng-model="item.cost"></slider> 
</div> 

包括所有必要的JS和CSS文件之後,將滑塊給出,但越來越顯示地板和天花板的值(和也定製地板和天花板定製值)。

控制檯中沒有錯誤。但是當我在腳本中使用角度v-1.1.4而不更改任何代碼時,一切看起來都很好。

有沒有人知道這個問題。任何解決方法,如果我需要使用角度爲v-1.2.20的滑塊。

感謝您的幫助!

回答

0

首先感謝我的英語,ng-bind-html-unsafe被刪除了角度js,所以我們現在需要在html代碼中直接使用「{{}}」,我只是通過html中的調用來改變屬性角度滑塊至少可以使用角度爲1.2.9的角度,這裏是一個完整的例子。

<!DOCTYPE html> 
<html ng-app="APP"> 
<head> 
    <meta charset="UTF-8"> 
    <title>angular-slider example</title> 
    <link rel="stylesheet" href="http://www.directiv.es/application/html/js/prajwalkman/angular-slider/angular-slider.min.css" media="all"> 
</head> 
<body> 

<div style="width:600px;" ng-controller="ItemCtrl"> 
    <slider floor="0" ceiling="100" step="1" precision="2" ng-model="cost"></slider> 
</div> 


    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script> 
    <script>// Generated by CoffeeScript 1.6.2 
(function() { 
var MODULE_NAME, SLIDER_TAG, angularize, bindHtml, gap, halfWidth, hide, inputEvents, module, offset, offsetLeft, pixelize, qualifiedDirectiveDefinition, roundStep, show, sliderDirective, width; 
MODULE_NAME = 'uiSlider'; 
SLIDER_TAG = 'slider'; 
angularize = function(element) { 
return angular.element(element); 
}; 
pixelize = function(position) { 
return "" + position + "px"; 
}; 
hide = function(element) { 
return element.css({ 
opacity: 0 
}); 
}; 
show = function(element) { 
return element.css({ 
opacity: 1 
}); 
}; 
offset = function(element, position) { 
return element.css({ 
left: position 
}); 
}; 
halfWidth = function(element) { 
return element[0].offsetWidth/2; 
}; 
offsetLeft = function(element) { 
return element[0].offsetLeft; 
}; 
width = function(element) { 
return element[0].offsetWidth; 
}; 
gap = function(element1, element2) { 
return offsetLeft(element2) - offsetLeft(element1) - width(element1); 
}; 
bindHtml = function(element, html) { 

}; 
roundStep = function(value, precision, step, floor) { 
var decimals, remainder, roundedValue, steppedValue; 
if (floor == null) { 
floor = 0; 
} 
if (step == null) { 
step = 1/Math.pow(10, precision); 
} 
remainder = (value - floor) % step; 
steppedValue = remainder > (step/2) ? value + step - remainder : value - remainder; 
decimals = Math.pow(10, precision); 
roundedValue = steppedValue * decimals/decimals; 
return roundedValue.toFixed(precision); 
}; 
inputEvents = { 
mouse: { 
start: 'mousedown', 
move: 'mousemove', 
end: 'mouseup' 
}, 
touch: { 
start: 'touchstart', 
move: 'touchmove', 
end: 'touchend' 
} 
}; 
sliderDirective = function($timeout) { 
return { 
restrict: 'EA', 
scope: { 
floor: '@', 
ceiling: '@', 
step: '@', 
precision: '@', 
ngModel: '=?', 
ngModelLow: '=?', 
ngModelHigh: '=?', 
translate: '&' 
}, 
template: '<span class="bar"></span><span class="bar selection"></span><span class="pointer"></span><span class="pointer"></span><span class="bubble selection"></span><span class="bubble limit"> {{floor}}</span><span class="bubble limit">{{ ceiling}}</span><span class="bubble">{{ngModel}}</span><span class="bubble"></span><span class="bubble"></span>', 
compile: function(element, attributes) { 
var ceilBub, cmbBub, e, flrBub, fullBar, highBub, lowBub, maxPtr, minPtr, range, refHigh, refLow, selBar, selBub, watchables, _i, _len, _ref, _ref1; 
if (attributes.translate) { 
attributes.$set('translate', "" + attributes.translate + "(value)"); 
} 
range = (attributes.ngModel == null) && ((attributes.ngModelLow != null) && (attributes.ngModelHigh != null)); 
_ref = (function() { 
var _i, _len, _ref, _results; 
_ref = element.children(); 
_results = []; 
for (_i = 0, _len = _ref.length; _i < _len; _i++) { 
e = _ref[_i]; 
_results.push(angularize(e)); 
} 
return _results; 
})(), fullBar = _ref[0], selBar = _ref[1], minPtr = _ref[2], maxPtr = _ref[3], selBub = _ref[4], flrBub = _ref[5], ceilBub = _ref[6], lowBub = _ref[7], highBub = _ref[8], cmbBub = _ref[9]; 
refLow = range ? 'ngModelLow' : 'ngModel'; 
refHigh = 'ngModelHigh'; 
bindHtml(selBub, "'Range: ' + translate({value: diff})"); 
bindHtml(lowBub, "translate({value: " + refLow + "})"); 
bindHtml(highBub, "translate({value: " + refHigh + "})"); 
bindHtml(cmbBub, "translate({value: " + refLow + "}) + ' - ' + translate({value: " + refHigh + "})"); 
if (!range) { 
_ref1 = [selBar, maxPtr, selBub, highBub, cmbBub]; 
for (_i = 0, _len = _ref1.length; _i < _len; _i++) { 
element = _ref1[_i]; 
element.remove(); 
} 
} 
watchables = [refLow, 'floor', 'ceiling']; 
if (range) { 
watchables.push(refHigh); 
} 
return { 
post: function(scope, element, attributes) { 
var barWidth, boundToInputs, dimensions, maxOffset, maxValue, minOffset, minValue, ngDocument, offsetRange, pointerHalfWidth, updateDOM, valueRange, w, _j, _len1; 
boundToInputs = false; 
ngDocument = angularize(document); 
if (!attributes.translate) { 
scope.translate = function(value) { 
return value.value; 
}; 
} 
pointerHalfWidth = barWidth = minOffset = maxOffset = minValue = maxValue = valueRange = offsetRange = void 0; 
dimensions = function() { 
var value, _j, _len1, _ref2, _ref3; 
if ((_ref2 = scope.precision) == null) { 
scope.precision = 0; 
} 
if ((_ref3 = scope.step) == null) { 
scope.step = 1; 
} 
for (_j = 0, _len1 = watchables.length; _j < _len1; _j++) { 
value = watchables[_j]; 
scope[value] = roundStep(parseFloat(scope[value]), parseInt(scope.precision), parseFloat(scope.step), parseFloat(scope.floor)); 
} 
scope.diff = roundStep(scope[refHigh] - scope[refLow], parseInt(scope.precision), parseFloat(scope.step), parseFloat(scope.floor)); 
pointerHalfWidth = halfWidth(minPtr); 
barWidth = width(fullBar); 
minOffset = 0; 
maxOffset = barWidth - width(minPtr); 
minValue = parseFloat(attributes.floor); 
maxValue = parseFloat(attributes.ceiling); 
valueRange = maxValue - minValue; 
return offsetRange = maxOffset - minOffset; 
}; 
updateDOM = function() { 
var adjustBubbles, bindToInputEvents, fitToBar, percentOffset, percentToOffset, percentValue, setBindings, setPointers; 
dimensions(); 
percentOffset = function(offset) { 
return ((offset - minOffset)/offsetRange) * 100; 
}; 
percentValue = function(value) { 
return ((value - minValue)/valueRange) * 100; 
}; 
percentToOffset = function(percent) { 
return pixelize(percent * offsetRange/100); 
}; 
fitToBar = function(element) { 
return offset(element, pixelize(Math.min(Math.max(0, offsetLeft(element)), barWidth - width(element)))); 
}; 
setPointers = function() { 
var newHighValue, newLowValue; 
offset(ceilBub, pixelize(barWidth - width(ceilBub))); 
newLowValue = percentValue(scope[refLow]); 
offset(minPtr, percentToOffset(newLowValue)); 
offset(lowBub, pixelize(offsetLeft(minPtr) - (halfWidth(lowBub)) + pointerHalfWidth)); 
if (range) { 
newHighValue = percentValue(scope[refHigh]); 
offset(maxPtr, percentToOffset(newHighValue)); 
offset(highBub, pixelize(offsetLeft(maxPtr) - (halfWidth(highBub)) + pointerHalfWidth)); 
offset(selBar, pixelize(offsetLeft(minPtr) + pointerHalfWidth)); 
selBar.css({ 
width: percentToOffset(newHighValue - newLowValue) 
}); 
offset(selBub, pixelize(offsetLeft(selBar) + halfWidth(selBar) - halfWidth(selBub))); 
return offset(cmbBub, pixelize(offsetLeft(selBar) + halfWidth(selBar) - halfWidth(cmbBub))); 
} 
}; 
adjustBubbles = function() { 
var bubToAdjust; 
fitToBar(lowBub); 
bubToAdjust = highBub; 
if (range) { 
fitToBar(highBub); 
fitToBar(selBub); 
if (gap(lowBub, highBub) < 10) { 
hide(lowBub); 
hide(highBub); 
fitToBar(cmbBub); 
show(cmbBub); 
bubToAdjust = cmbBub; 
} else { 
show(lowBub); 
show(highBub); 
hide(cmbBub); 
bubToAdjust = highBub; 
} 
} 
if (gap(flrBub, lowBub) < 5) { 
hide(flrBub); 
} else { 
if (range) { 
if (gap(flrBub, bubToAdjust) < 5) { 
hide(flrBub); 
} else { 
show(flrBub); 
} 
} else { 
show(flrBub); 
} 
} 
if (gap(lowBub, ceilBub) < 5) { 
return hide(ceilBub); 
} else { 
if (range) { 
if (gap(bubToAdjust, ceilBub) < 5) { 
return hide(ceilBub); 
} else { 
return show(ceilBub); 
} 
} else { 
return show(ceilBub); 
} 
} 
}; 
bindToInputEvents = function(pointer, ref, events) { 
var onEnd, onMove, onStart; 
onEnd = function() { 
pointer.removeClass('active'); 
ngDocument.unbind(events.move); 
return ngDocument.unbind(events.end); 
}; 
onMove = function(event) { 
var eventX, newOffset, newPercent, newValue; 
eventX = event.clientX || event.touches[0].clientX; 
newOffset = eventX - element[0].getBoundingClientRect().left - pointerHalfWidth; 
newOffset = Math.max(Math.min(newOffset, maxOffset), minOffset); 
newPercent = percentOffset(newOffset); 
newValue = minValue + (valueRange * newPercent/100.0); 
if (range) { 
if (ref === refLow) { 
if (newValue > scope[refHigh]) { 
ref = refHigh; 
minPtr.removeClass('active'); 
maxPtr.addClass('active'); 
} 
} else { 
if (newValue < scope[refLow]) { 
ref = refLow; 
maxPtr.removeClass('active'); 
minPtr.addClass('active'); 
} 
} 
} 
newValue = roundStep(newValue, parseInt(scope.precision), parseFloat(scope.step), parseFloat(scope.floor)); 
scope[ref] = newValue; 
return scope.$apply(); 
}; 
onStart = function(event) { 
pointer.addClass('active'); 
dimensions(); 
event.stopPropagation(); 
event.preventDefault(); 
ngDocument.bind(events.move, onMove); 
return ngDocument.bind(events.end, onEnd); 
}; 
return pointer.bind(events.start, onStart); 
}; 
setBindings = function() { 
var bind, inputMethod, _j, _len1, _ref2, _results; 
boundToInputs = true; 
bind = function(method) { 
bindToInputEvents(minPtr, refLow, inputEvents[method]); 
return bindToInputEvents(maxPtr, refHigh, inputEvents[method]); 
}; 
_ref2 = ['touch', 'mouse']; 
_results = []; 
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { 
inputMethod = _ref2[_j]; 
_results.push(bind(inputMethod)); 
} 
return _results; 
}; 
setPointers(); 
adjustBubbles(); 
if (!boundToInputs) { 
return setBindings(); 
} 
}; 
$timeout(updateDOM); 
for (_j = 0, _len1 = watchables.length; _j < _len1; _j++) { 
w = watchables[_j]; 
scope.$watch(w, updateDOM); 
} 
return window.addEventListener("resize", updateDOM); 
} 
}; 
} 
}; 
}; 
qualifiedDirectiveDefinition = ['$timeout', sliderDirective]; 
module = function(window, angular) { 
return angular.module(MODULE_NAME, []).directive(SLIDER_TAG, qualifiedDirectiveDefinition); 
}; 
module(window, window.angular); 
}).call(this);</script> 
    <script> 
    app = angular.module('APP', ['uiSlider']); 
    app.controller('ItemCtrl', ['$scope', function($scope) { 
    $scope.cost = 0 
    }]); 
    </script> 
</body> 
</html> 
+0

謝謝,但我已經做了使用以前的角度版本。 –