納克綁定-HTML我想顯示在場景上一些HTML(一個男人或一個女人的圖像),這取決於登錄我的網站的人的性別。當我靜態定義「imageToLoad」時,指令ng-bind-html起作用。但是,如果我的html綁定是由一個函數定義的,則它不起作用。AngularJS:因變量
控制檯告訴我:類型錯誤:$ scope.getHtml不是一個函數
這裏是我的簡化代碼:
HTML:
<div id="img-container" ng-controller="sceneCtrl" ng-bind-html="imgToLoad">
</div>
JS:
.controller('sceneCtrl', function($scope, $http, $sce){
/* This works
** $scope.imgToLoad = $sce.trustAsHtml('<img id="over2" src="imgMale.png"/>');
*/
$scope.imgToLoad=$scope.getHtml();
$scope.getHtml=function(){
var gender='male';
if(gender=='male'){
return $sce.trustAsHtml('<img id="over2" src="imgMale.png"/>');
}
else if(gender=='female'){
return $sce.trustAsHtml('<img id="over2" src="imgFemale.png"/>');
}
return 'error getHtml';
}
})
我用一個變量簡化了JS,性別,但最終性別將由後端從數據庫中提供。
根據我的研究,我可能不得不使用「編譯」,但我不知道它是如何工作的。
感謝您的幫助!
您是否收到任何錯誤? –
嘗試在下列行之前放置函數定義:$ scope.imgToLoad = $ scope.getHtml(); –