如何更新链接方法中的范围属性?

时间:2016-03-15 17:23:55

标签: angularjs angular-directive

这段代码只是我整理的测试,所以我可以理解逻辑。 基本上我想要发生的是获取传递给指令的值。基于该值,我想向范围添加几个属性。

第一个测试只是更新已经传入的属性。

指令:

angular.module('bd.common')

    .directive('bdPopoverLegend', function () {
        return {
            restrict: 'AE',
            replace: true,
            scope: {
                legendInfo: '=info'
            },
            templateUrl: '/bd/common/ctl/bdPopoverLegend.html',
            link: function (scope, element, attrs) {
                scope.legendInfo.test = 'hello world 4';
            }
        };
    });

模板:

<div>{{legendInfo.test}}</div>

致电指令:

<div bd-popover-legend="" info="{test: 'hello world 3'}">

价值永远不会改变,它仍然是“你好世界3”。而不是&#39; hello world 4&#39;

1 个答案:

答案 0 :(得分:1)

试试这个:

.directive('bdPopoverLegend', function () {
    return {
        restrict: 'AE',
        replace: true,
        scope: {
            legendInfo: '=info'
        },
        templateUrl: '/bd/common/ctl/bdPopoverLegend.html',
        link: function (scope, element, attrs) {

          scope.$watch('legendInfo', function (watchInfo) {
              watchInfo.test = 'hello world 4';
          });

        }
    };
});