如何在AngularJS控制器中进行判断

时间:2016-08-04 08:36:45

标签: javascript angularjs

我有一个角度控制器,其中我有一个应该返回图像的函数取决于从服务器接收的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}}"/>

3 个答案:

答案 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";

问候。