无法从`directive`范围获取值

时间:2015-06-27 10:15:09

标签: javascript angularjs

我正在尝试从ng-repeat directive获取$index,但只有我被value安慰,undefiend控制台为<body ng-controller="main"> <h1>{{index}}</h1> <new-array index='$index' ng-repeat="value in values">{{value}}</new-array> </body> }。

这里有什么问题?

我的代码:

HTML:

var myApp = angular.module('myApp', []);

myApp.controller('main', function ($scope) {

  $scope.values = [{"name":"one", "num" : 1}, {"name":"two", "num" : 2}, {"name":"three", "num" : 3}]

  $scope.index = 0;

  $scope.update = function (num) {
    $scope.index = num;
  }

});

myApp.directive("newArray", function () {

  return {

    scope : {
      value : "=",
      index : "="
    },

    link : function (scope, element, attrs) {

      console.log(scope.value, scope.index)
      //reusult as "undefined" 1

    }

  }

})

JS:

  Registration.import(params[:file], params[:analysis_id])

Live Demo

2 个答案:

答案 0 :(得分:2)

这个

<new-array index='$index' ng-repeat="value in values">{{value}}</new-array>

应该是

<new-array index='$index' value='value' ng-repeat="value in values">{{value}}</new-array>

答案 1 :(得分:0)

在您的指令中,您将范围设置为

  scope : {
      value : "=",
      index : "="
    }

这样您就可以创建一个不从父作用域继承的隔离作用域。所以你必须将值传递给指令作为&#34; simoco&#34;说明。