当前位置: 首页 > 面试题库 >

AngularJS根据ng-repeat中的条件设置按钮文本

孔安福
2023-03-14
问题内容

我正在尝试通过转换一段有效的jQuery /
AJAX代码来学习Angular。它是表内的活动查看器,基本上根据条件显示一条带有“标记为已读”或“标记为未读”按钮的消息。我在设置基于的按钮文本时遇到麻烦activity.seen == 0

// html
<div class="table-responsive" ng-controller="Activity">
    <table class="table table-bordered table-striped table-hover">
        <tbody>
            <tr ng-repeat="activity in activities" ng-class="{ 'activity-read': activity.seen == 1 }">
                <td><button class="btn btn-default"><span ng-bind="buttonText"></span></button></td>
                <td>{{ activity.content }}</td>
            </tr>
    </table>
</div>

// controller
function Activity($scope, $http, $templateCache)
{
    $http.get('/activity/get').success(function(response, status)
    {
        $scope.activities = response;

        angular.forEach($scope.activities, function(activity)
        {
            $scope.buttonText = activity.seen == 0 ? 'Mark Read' : 'Mark Unread';
        });
    });
}

但这只是设置buttonTextactivity.seen条件的最后一个值。因此,如何在初始加载时将正确的文本动态绑定到每行的按钮。

我认为这应该具有双向绑定,因为在单击按钮文本之后,我还需要根据按钮的新值来更新按钮文本,该新值activity.seen将通过张贴到更新方法中$http


问题答案:

我认为这应该做您想要的:

    <button ng-click='activity.seen = !activity.seen'>
        <span>{{activity.seen ? 'Mark unread' : 'Mark read'}}</span>
    </button>

[**Fiddle**](http://jsfiddle.net/GruffBunny/gNYHt/)



 类似资料:
  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7

  • 问题内容: 我正在使用angular.js和(出于参数考虑)引导程序。现在我需要遍历“事物”并将其显示在“行”中: 现在,我该如何用角度关闭每隔三点的div?我从angular-ui尝试过ui-if,但即使这样也没有成功。 如果要使用服务器端渲染,则可以执行以下操作(此处为JSP语法,但没有关系): 请注意,我实际上需要在这里更改DOM,而不仅仅是css隐藏元素。我尝试在和div 上重复,但无济于

  • 我已经开发了应用程序使用离子框架来显示客户当前的市场价格。我有问题在角js条件类与ng-重复循环。当市场发生变化时,我需要显示高(绿色)和低(红色)颜色,如果没有变化,以前的颜色应该为div显示,我使用了下面的代码查看 控制器: CSS 对于每一秒的速率将得到更新,所以若速率变得很高,那个么之前的速率应该应用css类。评分高颜色如果低意味着应用css类。rate highcolor else表示它

  • 问题内容: 如何在angularJS中有条件地执行ng-include? 例如,如果变量设置为,我只想包含一些内容。 问题答案: 如果您使用的是Angular v1.1.5或更高版本,则还可以使用ng- if : 如果您有任何旧版本: 使用ng-switch: 小提琴

  • 问题内容: 我有一个基于以下示例的菜单: item是一个对象,包含菜单项信息。这是指令和控制器的JavaScript代码: 问题是,套到只有一次页面渲染过程中,但是当你点击一个菜单项,没有一切发生的时候。我想这是因为菜单本身并未重新加载,而我只是在其中更改了数据。那么如何在不重新加载整个页面的情况下使它工作呢? 问题答案: 试试看:-http : //jsfiddle.net/uDPHL/146/

  • 问题内容: 如果我的措词不正确,我事先表示歉意。我在的内部有一个文本框,当我尝试获取文本框值时始终为。我只希望它显示我在相应文本框中键入的内容。 似乎是一个问题,那么我该如何创建全局或控制器根级别以便可以访问它? 这是帮助解决问题的JSFiddle:http : //jsfiddle.net/stevenng/9mx9B/14/ 问题答案: 在您的点击表达式中,您可以引用并在您的函数中对其进行访问