SolarTerms.controller('FooterCtrl', ['$state', '$rootScope', '$scope', function ($state, $rootScope, $scope) {
$scope.imgsrc = {
"imda1":"img/icon1.png",
"imda2":"img/icon2.png",
"imda3":"img/icon3.png",
"imda4":"img/icon4.png",
"imda5":"img/icon5.png"
}
}])
SolarTerms.directive("tabImg",function () {
return {
restrict:'A',
scope:false,
link:function (scope,ele,attr,ctrl) {
ele.bind('click',function (event) {
var index = $(this).index();
scope.imgsrc = {
"imda1":"img/icon1.png",
"imda2":"img/icon2.png",
"imda3":"img/icon3.png",
"imda4":"img/icon4.png",
"imda5":"img/icon5.png"
};
scope.imgsrc['imda'+(index+1)] = 'img/icon'+(index+1)+'1.png';
//scope.$apply(scope.imgsrc['imda'+(index+1)] = 'img/icon'+(index+1)+'1.png')
})
}
}
})
<p tab-img class="I_AF_p" ng-click="goto('index')"><img ng-src="{{imgsrc.imda1}}" alt="">< span>Homepage</span></p>
<p tab-img class="I_AF_p" ng-click="goto('ye')"><img ng-src="{{imgsrc . imda2}}" alt=""><span>balance</span></p>
<p tab-img class="I_AF_p" ng-click="goto('js')" > <img ng-src="{{imgsrc.imda3}}" alt=""><span>Berechnen</span></p>
<p tab-img class="I_AF_p " ng- click="goto('ck')"><img ng-src="{{imgsrc.imda4}}" alt=""><span>View</span></ p>
< ;p tab-img class="I_AF_p" ng-click="goto('wd')"><img ng-src="{{imgsrc.imda5}}" alt=""> Dokumente</span></p>
Rufen Sie den Index ab, nachdem Sie auf das entsprechende p geklickt haben, und ändern Sie dann den entsprechenden Wert in $scope.imgsrc. Die Konsole kann die Bildadresse korrekt ausgeben. Warum muss der Wert in ng-src in der Ansicht jedoch zweimal angeklickt werden, um ihn zu ändern? ? Ich möchte nur die ng-Image-Adresse in src ändern. Kann mir das jemand erklären?
需要手动触发angular的渲染机制