Angularjs。访问指令范围中的变量

时间:2016-06-09 12:41:30

标签: javascript angularjs

我有以下指令

var chartDir = function () {
    return {
      scope: {
        stat: '='
      },
      link: function (scope, element, attr) {
        console.log(scope);
        return;
      }
}

HTML

<svg chart stat="stat"></svg>

所以在这种情况下我可以在控制台中看到范围有一个名为stat的属性(一个数组,不是空的!)

这是截图...

enter image description here

但如果我做console.log( scope.stat )那么我只得undefined。我在其他图表中有相同的指令,它工作正常。但在这里,我无法理解为什么我无法访问scope.stat

UPD: 更多HTML

<div class="chart-container container" ng-show="statLoaded">
  <div class="text col">
    <div class="item" ng-repeat="item in stat | limitTo: middleIndex">
      <div class="color">
        <div class="sample" color-sample color="item.color"></div>
      </div>
      <div class="amount">
        {{ item.amount }}
      </div>
      <div class="text">
        {{ item.text }}
      </div>
    </div>
  </div>
  <div class="col">
    <svg chart stat="stat"></svg>
  </div>
 ...

所以我看到了所有项目和指令&#34; color-sample&#34;效果很好。所以&#39; stat&#39;已加载。那么,为什么&#39; color-sample&#39;指令工作和&#39;图表&#39; doesen&#39;?吨

1 个答案:

答案 0 :(得分:0)

解决方案

scope.$watch(attr.stat, function () {

而不是

scope.$watch(scope.stat, function () {