0

アプリ レベルのコントローラーを介してディレクティブ モジュールを構成したいと考えています。プランカー

index.html

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

app.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 に答える