繁体   English   中英

$ scope中的数据更改但未在AngularJS的指令中更新

[英]Data changes in the $scope but not updating within a directive in AngularJS

我有以下指令:

'use strict';
angular
 .module('rdash')
 .directive('rdWidgetBody', function(){
    var directive = {
        requires: '^rdWidget',
        scope: {
            loading: '@?',
            classes: '@?', 
            query: '@?'
        },
        transclude: true,
        template: '<div class="widget-body" ng-class="classes"><rd-loading ng-show="loading"></rd-loading><div ng-hide="loading" class="widget-content" ng-transclude></div></div>',
        restrict: 'E'
    };
    return directive;
});

我在我的范围内正在使用它,我有一个属性$ scope.total_apps,该属性在控制器中正在更改,但在视图中未更新

谁能帮助我确保可以进行双向数据绑定?

这是代码:

<div class="row" data-ng-controller="AdminsController">
    <div class="col-lg-3 col-md-6 col-xs-12">
        <rd-widget>
        <rd-widget-body>
            <div class="widget-icon green pull-left">
                <i class="fa fa-calendar"></i>
            </div>
            <div class="title">{{total_apps}}</div>//Not updating after changed somewhere else.
            <div class="comment">Appointments</div>
        </rd-widget-body>
        </rd-widget>
    </div>
</div>

编辑-修改total_apps的代码-(在AdminsController中)

$scope.appointmentsGetter = function(app_query){

            Appointments.query(app_query).$promise.then(function(res){
                $scope.appointments = res;
                $scope.total_apps = $scope.appointments.length; 

            });
        };

由于您的指令具有隔离范围,因此您在<rd-widget-body></rd-widget-body>标记内拥有的{{total_apps}}属性实际上与您要更新的属性在范围的不同部分。 尝试{{ $parent.total_apps }}访问父范围中的属性。

我的答案假设您在控制器中设置了total_apps ,并且范围是父级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM