访问指令范围内的变量

时间:2015-12-28 17:36:52

标签: angularjs angularjs-directive

如何访问指令范围内的变量?

我有这样的指示:

linkedin://profile/[id]

在HTML中,例如:

angular.module('app').directive('any', function() {
    return {
        restrict: 'E',
        scope: {
            attr: '@'
        },
        controller: function($scope) {
            $scope.attr = $scope.attr != undefined;
        },
        template: 'Result (true/false): {{attr}}'
    };
});

但变量<any attr="bla"></any> 仍然是$scope.attr,不会随着true或false的值而变化。我该怎么办?

2 个答案:

答案 0 :(得分:2)

只是不要使用相同的变量来保存与undefined和实际attr值的比较。

每次angular执行其摘要循环时,它都会重置范围中attr的新值。

答案 1 :(得分:-1)

在AngularJS中创建隔离范围时,AngularJS提供3种类型的前缀:

  1. &#34; @&#34; (文本绑定/单向绑定)
  2. &#34; =&#34; (直接模型绑定/双向绑定)
  3. &#34;&安培;&#34; (行为绑定/方法绑定)
  4. 您使用的是单向绑定方法。要在HTML中正确使用它,您需要这样做:

    <any attr="{{ bla }}"></any>