Javascript ng click事件后指令范围不更新

Javascript ng click事件后指令范围不更新,javascript,angularjs,Javascript,Angularjs,我有一个指令,$scope.awards在加载时为空: .directive('awardNavBar', function () { // Directive used to display a badge. return { restrict: 'E', scope: { awards: '=' }, replace: true,

我有一个指令,
$scope.awards
在加载时为空:

 .directive('awardNavBar', function () {
     // Directive used to display a badge.
        return {
            restrict: 'E',
            scope: {
                awards: '='
            },
            replace: true,
            templateUrl: "/static/html/partials/directives/awardNavBar.html",
            controller: function ($scope) {
                    console.log($scope.awards)
            }
        }
    })
但是,当用户单击“我的控制器”时,会触发一个调用并用内容更新$scope.awards:

   .controller("awardController", ['$scope', '$rootScope', 'Restangular', "$q", "$location", "TokenRestangular",
        function ($scope, $rootScope, Restangular, $q, $location, TokenRestangular) {

            $scope.updateAwardScope = function () {
                resource = TokenRestangular.all('award');
                resource.getList()
                    .then(function (awards) {
                        $scope.awards = awards;
                    })
            }

        }])
我的问题是指令scope.awards保持空白,并且永远不会更新

有没有办法从控制器调用指令并更新其作用域

我试过:

$scope.$apply()但获取错误:

[$rootScope:inprog]$rootScope/inprog?p0=%24摘要

这是我的html:

首先单击事件:

  <div ng-controller="awardController">
        <div class="btn-group pull-right" >
            <div ng-click="toggle('rightSidebar'); updateAwardScope()" class="btn btn-navbar">
                <i class="fa fa-comment"></i> Chat
            </div>
        </div>

聊天
那么我的指示是:

  <div ng-controller="awardController">
                     <award-nav-bar awards="awards"></award-nav-bar>
                </div>

对我来说,您似乎没有将
奖励
包装在
{}
的HTML绑定中。试试这个:

<award-nav-bar awards="{{ awards }}"></award-nav-bar>


否则,
awards
属性将等于字符串
“awards”

我知道这是一个老问题,但解决方案与您得到的完全不同,我从控制器对一个模型执行了一个指令,然后在指令中使用矩形从服务器获取文件,我只是尝试使用普通的:scope.myDirective=restdata更新它,它在指令上运行良好,但不更新控制器中的作用域,我尝试使用$apply,但它抛出了一个已经在处理中的错误,然后我最终使用angular.extend,这保存了我的世界!,因为矩形只有一个作用域,所以它只更新到第一个父级,即指令控制器,而主控制器永远不会更新。这就是angular.extend fix


请告诉我这是否有助于您

尝试
console.log(awards)
并告诉我们显示了什么。显示您的html绑定。@DaniloValente我的所有对象:[对象,对象,计数:2,下一个:null,上一个:null,路由:“awards”,getRestangularUrl:function…]@Spike Great。现在,正如Chandermani所建议的,请显示您的HTML绑定。我明白了,这是有意义的。但是,范围仍然没有更新。这就是我现在使用apply()的地方吗?这是否仍然会导致错误。。[$rootScope:inprog]你确定它真的不会更新吗?它可能没有被显示出来。不管怎样,你能把它贴到Plnkr上吗?对于这个问题,原始海报已经给出了一个答案。如果你想评论这个答案,最好是作为一个评论,而不是作为一个新的答案来评论。