AngularJS Controller中的简单条件

时间:2015-06-05 20:13:44

标签: javascript angularjs

我正在实施通知功能。在服务中,我会请求一个返回通知数组的URL。

在控制器中,我必须设置一个变量,用于存储每种通知类型的消息字符串。我对角度很新,只是想知道我的语法和逻辑是否正确。

/* Model + Controller */
// Assume wrapped in controller function

$scope.notifications = notifications=[
{id:1, type: 6},
{id:2, type: 3},
{id:3, type:4}]; 

$scope.display_message = function(){

    if ($scope.notifications.type == 1){

    $scope.notification_message = "some text";

    } else if ($scope.notifications.type == 2){

    $scope.notification_message = "some text";

    }

  //... for brevity

return $scope.notification_message

}


/* View */

<li ng-repeat={{notification in notifications}}>

    {{display_message()}}
</li>

2 个答案:

答案 0 :(得分:1)

逻辑有点令人困惑,但我认为你想为每一个显示消息,所以你需要每次都传递通知。

reboot
// Assume wrapped in controller function

$scope.notifications = notifications=[
{id:1, type: 6},
{id:2, type: 3},
{id:3, type:4}]; 

$scope.display_message = function(notification){

    if (notification.type === 1){

    $scope.notification_message = "some text";

    } else if (notification.type === 2){

    $scope.notification_message = "some text";

    }

  //... for brevity

return $scope.notification_message

}


/* View */

您也不需要<li ng-repeat="notification in notifications"> {{display_message(notifcation)}} </li>中的{{}},也总是使用ng-repeat而不是===

答案 1 :(得分:1)

这里$ scope.notifications是一个数组,那你怎么检查$ scope.notifications.type == 1?

你可以试试这个:

 $scope.display_message = function(notification){
 var message ;
if (notification.type == 1){

message  = "some text";

} else if (notification.type == 2){

message  = "some text";

}
 return message;
} 

然后

<li ng-repeat="notification in notifications">

{{display_message(notifcation)}}
</li>