在AngularJS中使用指令中的控制器

时间:2015-01-08 13:59:07

标签: angularjs

我的指示:

angular.module('matrixarMatrice', []).directive('mtxMatriceForm', function () {
  return {
    restrict: 'E',
    templateUrl: 'views/matrice/matrice.html',
    scope: {
      matrix: '=',
      isclicked: '=',
      selectedprice: '&'
    },
    link: function (scope, element, attrs) {
      ...
      scope.selected = function (prices) {
        scope.selected.id = prices.id;
        scope.selectedprice(prices);
      };
    }
  };
});

我的控制器:

$scope.selectedprice = function (prices) {
  console.log(prices);
};

我的HTML:

<mtx-matrice-form matrix="matrix " isclicked="isclicked" selectedprice="selectedprice(prices)"></mtx-matrice-form>

在我的指令中,当我选择项目时,我会调用我的控制器。 我想利用我的对象价格,但我现在遇到的问题是我的控制器中有一个undefined。 有谁知道这样做的正确方法?

2 个答案:

答案 0 :(得分:1)

这是一个可用于在控制器中包含控制器的选项!还有其他选择。希望它有所帮助!

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

app.controller('MainCtrl', function($scope) {
  $scope.name = 'Lorem';
});

app.directive('directives', function() {
  return {
    restrict: 'E',
    controller: function($scope, $element){
      $scope.name = $scope.name + "impsum";
    },
    link: function(scope, el, attr) {
      scope.name = scope.name + "Ipsum";
    }
  }
})

答案 1 :(得分:0)

我找到了这个解决方案:

在我的指令中:

...
scope.selected = function (prices) {
   scope.selected.id = prices.id;
   scope.selectedprice({prices: prices});
};
...