我試圖用動態路徑製作img。常見的解決辦法似乎使用使用CSS動畫的動態src路徑
document.getElementById();
我這樣做,但我得到了一個問題:在加載之前的HTML和我得到一個錯誤,因爲ID指的是什麼我的控制器被調用。我的理解問題和解決方案似乎是
1)把腳本在
<script>
應答器的頁面下。這應該可行,但我想在我的控制器中調用getElementById(),因爲我想要做的路徑取決於參數(它實際上是一個uibmodal的控制器)。 因此,由於我無法將參數從控制器傳遞到HTML中的腳本應答器,因此它不再是解決方案。
2)我也嘗試使用window.onload(),但是當我嘗試的時候,onload函數根本沒有被調用。 此外,我記得曾經嘗試過這一點,甚至當函數被調用時,已經太晚了,因爲img需要在動畫中使用。
我有點不知所措,真的沒有看到該做什麼。我正在使用angular,因此我沒有嘗試基於JQuery的解決方案,但我認爲沒有理由讓它們與window.onload更相關。
有誰知道如何解決這個問題?
(function() {
'use strict';
angular
.module('objectifDtyApp')
.controller('MyBadgeController',MyBadgeController);
MyBadgeController.$inject = ['$uibModalInstance', '$state', '$stateParams', 'BadgeView', 'items', 'Lesson'];
function MyBadgeController($uibModalInstance, $state, $stateParams, BadgeView, items, Lesson) {
var vm = this;
console.log(items);
vm.blocName = items.title;
vm.ImagePath = items.path;
console.log(vm.ImagePath);
window.onload = function(){
console.log("called");
var img =document.getElementById('ImgBadge');
img1.src= vm.ImagePath;
};
function clear() {
$uibModalInstance.dismiss('cancel');
}
vm.close = function() {
$uibModalInstance.close(true);
//$state.go('viewCourse', {id: $stateParams.idLesson});
}
}
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div>
<div class="Badge_logo-demo">
<img ng-click="vm.close()" src="" alt="Badge_logo" id= "ImgBadge" class="Badge_logo">
<h2 class="Badge_byline" id="Badge_byline"> You successfully did the Block {{vm.blocName}} </h2>
</div>
</div>
這裏是一個片段,它顯然是行不通的,但它是爲了顯示我的代碼。我沒有放CSS,因爲它不相關。 但是,如果有解決方案,可以通過將圖像的絕對路徑置於vm.ImgPath中來檢查該片段。
我確切地說,所有的東西都是在uibmodal的開頭調用的,所以它不是關於忘記ng-controller等等。 {{blocName}}正在爲我工作。
簡而言之,你想做什麼? – developer033