है, मैं AngularJS के साथ एक वेब ऐप विकसित कर रहा हूं। मुझे कोई त्रुटि नहीं मिली जो कहीं से दिखाई नहीं दे रही थी, यह ठीक काम कर रहा था और मुझे नहीं पता कि यह अब और क्यों काम नहीं करता है।Uncaught TypeError: संपत्ति ऑफसेट सेट नहीं कर सकता #की चौड़ाई जिसमें केवल एक गेटर
तो यह निर्देश में है, मैं निर्देश एचटीएमएल टेम्पलेट में किसी तत्व के offsetWidth
को सेट करने का प्रयास करता हूं। चूंकि मैं वास्तव में नहीं जानता कि यह कहां से आ सकता है, मैं आपको अपने निर्देश और टेम्पलेट का पूरा कोड दूंगा। निर्देश एक ऐप बटन बनाता है और क्लिक पर इसके दृश्य प्रभाव को संभालता है। यह लाइन $element[0].offsetWidth = $element[0].offsetWidth;
है जो त्रुटि को ट्रिगर करती है। (यह एनीमेशन को पुनरारंभ करने के लिए एक चाल है)
मैं फिर से दोहराता हूं, यह कोड ठीक काम कर रहा था और मुझे पूरा यकीन है कि मैंने कोई बदलाव नहीं किया है। मैं डीबग करने के लिए क्रोम का उपयोग कर रहा हूँ, शायद यह इससे आता है?
त्रुटि: Uncaught TypeError: Cannot set property offsetWidth of #<HTMLElement> which has only a getter
निर्देशक:
'use strict';
XVMApp.directive('appButton', ['$location', function($location){
return {
restrict: 'E',
replace: true,
scope: {
img: '@',
fillPercent: '@?',
target: '@?'
},
link: function ($scope, $element) {
// Image percentage fill button
if($scope.fillPercent === undefined) $scope.fillPercent = '100';
// Click event
$element.on('click', function() {
// Url target
if($scope.target !== undefined){
$scope.$apply(function() {
$location.path($scope.target);
});
}
// Click effect
$element[0].preventDefault;
$element[0].classList.remove('app-button-click-effect');
$element[0].offsetWidth = $element[0].offsetWidth;
$element[0].classList.add('app-button-click-effect');
});
},
templateUrl: 'src/directive/appButton/app-button.html'
};
}]);
टेम्पलेट:
<div class="app-button"
style="background-size: {{fillPercent}}%; ">
<div style="
background-image: url('src/assets/img/{{img}}');
background-repeat: no-repeat;
background-position: center;
background-size: {{fillPercent}}%;
height: 100%;
width: 100%; ">
</div>
</div>
अगर मुझे केवल ऑफसेट प्राप्त होता है तो विजिट वैल्यू एनीमेशन चाल फिर से काम करता है ($ element [0] .offsetWidth;), इसलिए मेरी समस्या ठीक हो गई है। लेकिन मैं अभी भी सोच रहा हूं कि मैं ऑफसेट के लिए मूल्य क्यों निर्धारित नहीं कर सकता? – sylvain1264