0

我想通过我的应用级控制器配置我的指令模块。普朗克

索引.html

<div ng-controller="App">
  <foodz index="index"></foodz>
</div>

应用程序.js

angular.module('app', ['foodz']).
  controller('App', ['$scope',function($scope){
    $scope.index = 1;
  }]);

foodz.js

angular.module('foodz', []).
  controller('foodzController', ['$scope',function($scope){

    //Data is coming in through external API
    $scope.$on('foodzFetched', function(e,d) {
      $scope.foodz = d;
    });

    //Lets say data to looks like:
    //[{"name":"banana"},{"name":"smoothy"}]
  }]).
  directive('foodz', function() {
    return {
      restrict: 'E',
      scope:{
        index: '@'
      },
      replace: true,
      controller: 'foodzController',
      templateUrl: 'foodzTemplate.html',
      link: function(scope, controller) {}
    };
});

foodzTemplate.html

<div ng-controller="foodzController">
  <span>
    {{foodz[index].name}}
  </span>
</div>

所以在这个例子中,我试图index通过我的app关卡控制器传递到我的指令元素的一个属性中,它也有它自己的控制器。

我在这里做错了什么?

4

1 回答 1

2

尝试制作scope:{index:'='}

查看指令定义对象

我认为您正在index='index'控制器中接收(作为字符串)。使用=它将从父控制器获取值。

于 2013-09-09T16:27:20.367 回答