我正在使用引導程序和角度進行聊天。每個消息都以「well-sm」類顯示在其div中。 這是負責該代碼的樣子:角元素記錄不正確的值
<div ng-repeat="message in messages" class="media" >
<h5 class="media-heading"><span>{{message.nick}}</span> {{message.time | date: "yyyy.MM.dd HH:mm"}}</h5>
<div change-well-height class="well well-sm">{{message.body}}
</div>
</div>
但是,如果它的長度是太大了,我們得到這樣的: How ordinary and long messages look like
所以我決定增加一個指令變化以及高度看起來scrollWidth是否大於clientWidth,如果是,則更改高度。 代碼的指令:
(function() {
'use strict';
app.directive('changeWellHeight', [
'$location', function($location) {
return {
restrict: "A",
link: function(scope, element, attr) {
$(document).ready(function(){
console.log(element);
console.log(element['0'].scrollHeight, element['0'].clientHeight, 'Height');
console.log(element['0'].scrollWidth, element['0'].clientWidth, 'Width');
if (element['0'].scrollHeight > element['0'].clientHeight || element['0'].scrollWidth > element['0'].clientWidth){
//do stuff
}
});
}
};
}
]);
}).call(this);
NOW問題當我第一次看登出整個元素,我看到,很多都在Chrome和FF的屬性中: clientWidth:467, scrollWidth: 2347個
但接下來的console.log顯示: 435 435「寬度」
這怎麼可能是同一個對象給了我不同的價值觀?我不知道如何解決這個問題
你在某些時候改變數值? console.log不會顯示所有不同的值,只會有最後一個,至少在chrome中,它通過日誌旁邊控制檯中的黃色三角形顯示。 – koox00
@ koox00,謝謝你的評論。那裏沒有黃色的三角形。 我不會更改該值,只需將其註銷即可。可以隱式改變某處,但我沒有編寫任何代碼來改變它。 另外,這很奇怪。我註銷了元素的所有屬性並且它是正確的,並且在下一行中,我只註銷了兩個屬性 - 其中一個屬性不正確。我認爲沒有時間去改變。 – Sapientisat
'link'運行時不會呈現文本,請嘗試使用'$ timeout' – charlietfl