从Angular Directive中将变量注入角度控制器

时间:2014-01-16 20:55:40

标签: javascript angularjs angularjs-directive

更新,因为我要问的是一些混乱。我想使用一个指令将变量注入该指令使用的控制器中。我意识到我可以使用$ scope,但我找不到直观的解决方案。


基本上我希望我的控制器将投标变量注入其中。

我的预期用途:

<blah-directive proposal="proposal"></blah-directive>

指令(到目前为止):

app.directive('blahDirective', function () {
    return {
        restrict: 'E'
        , transclude: true
        , replace: true
        , scope: {
            proposal: '='
        }
        , templateUrl: 'blahTemp.html'
        , controller: blahController
    };
});

blahTemp.html

<form class="form-horizontal" role="form" name="myBidForm">
    **{{ proposal }}**    
</form>

这是在$ scope中显示值proposal变量,但它不是我想要的。基本上我想定义我的控制器:

var blahController = function($scope, SomeOtherResource, proposal) {


}

1 个答案:

答案 0 :(得分:3)

如果您想将本地人注入控制器,请使用$controller

以下是一个示例(plunker):

app.directive('blahDirective', function ($controller) {
  return {
    restrict: 'E',
    scope: {
      proposal : "="
    },
    transclude: true,
    replace: true,
    templateUrl: 'blahTemp.html',
    link : function (scope, elm, attrs){
      scope.proposal = {};
      var locals = {
        $scope: scope , 
        proposal: scope.proposal
      };
      $controller('blahController', locals);
    }
  };
});