[英]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.