我有一个角度控制器,其中我有一个应该返回图像的函数取决于从服务器接收的json。 问题是收到哪个国家并不重要只加载第一个国家(在我的情况下是usa.png)。
$scope.getUser = function(){
url = "/get";
$scope.img = "";
$http.post(url, {
"Id":$scope.Id,
"name":$scope.name
}).then(
function (response){
$scope.returnedUser = response.data;
if ($scope.returnedUser.country = "USA"){
$scope.img = "/base_icons/usa.png";
} else if ($scope.returnedUser.country = "Canada"){
$scope.img = "/base_icons/canada.png";
} else if ($scope.returnedUser.country = "Mexico"){
$scope.img = "/base_icons/mexico.png";
}
}, $scope.negativeMessage);};
<img ng-src="{{img}}"/>
答案 0 :(得分:6)
你不平等:
if ($scope.returnedUser.country = "USA") // this is an assignment operator in if
应该是:
if ($scope.returnedUser.country == "USA")
或者你可以有严格的平等(推荐):
if ($scope.returnedUser.country === "USA")
严格的平等是好的(在大多数情况下),因为这意味着'1' === 1
之类的东西不会返回true,而'1' == 1
将返回true。
答案 1 :(得分:1)
您指定了值,但您必须检查它:
$ scope.returnedUser.country == &#34; USA&#34;
答案 2 :(得分:0)
如果国家/地区已经从特定国家/地区固定,并且比较不是强制性的,则可以这样使用。
$scope.image_base = "/base_icons/";
$scope.returnedUser = response.data;
$scope.img = $scope.image_base + ($scope.returnedUser.country).toLowerCase() + ".png";
问候。