获取指令控制器中 HTML 中定义的指令属性

get directive attribute defined in HTML in directive controller

我正在创建一个自定义控制器,我想在其中获取控制器中的指令属性。这是我到目前为止所做的,但我无法获得属性值。

HTML代码:

<my-text name="tester"></my-text>

Angular 代码:

app.directive('MyText', function() {
   var controller = ['$scope', function ($scope) {
        console.log($scope.name)
        $scope.text = $scope.name
      }];
  return {
    restrict: 'EA',
    scope: {
      name: '='
    },
    controller: controller,
    template: 'Name: {$ text $}'
  };
});

你可以看到我已经在 HTML 中定义了一个属性 name 具有值 tester 我想在指令控制器中获取这个值,以便我可以对此进行一些计算和在 template 中显示结果。这只是我尝试做的演示,但最后我将向后端发送 $http 请求(POST 中的属性值)并在模板 HTML.

中显示响应

有什么错误的建议吗?

注意:我在 angular 中使用此 {$ var $} 语法,因为我正在覆盖 angular 默认语法,因为我使用 Python /Django 作为后端并且两者都有类似语法

这是一个演示 plunker

您应该像这样更新您的指令:

app.directive('myText', function(){
  return {
    restrict: 'AE',
    scope: {
      name: '='
    },
    controller: function($scope, $element, $attrs){
      console.log($attrs.name)
      $scope.text = $attrs.name;
    },
    template: 'Name: {{text}}'
  };
});