在angularJS脚本中使用模板变量?

时间:2016-12-03 21:43:22

标签: angularjs templates nunjucks

我正在使用Nunjucks来渲染一个模板超时的东西击中了正确的URL。这是该模板的一部分:

<h3>Select some text </h3>
<div ng-app="myApp">
  {% for i in result %}
<div id={{i._id}} class="task" commentId = {{i._id}} get-popover-content> {{i.text}} </div> <br/>
{% endfor %}

我还在这个模板中放了一个有角度的JS脚本,现在,我只想弄清楚在指令中传递变量{{i._id}}的最佳方法是什么(可能,我想将此i._id发送到我的数据库以获取信息。

<script>
var app = angular.module("myApp", []);
app.directive("getPopoverContent", function($http) {
   return {
     link: function(scope, element, attr) {
      element.popover();
      $(element).on('mouseover', function(e){
      console.log('i._id = ',{{i._id}});
    })
  })

} }});

  1. 这是使用模板引擎+ angularJS的正确方法吗?
  2. 有办法吗?

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点,你可以将它绑定到指令范围。

&#13;
&#13;
var app = angular.module("myApp", []);
app.directive('getPopoverContent', function() {

  function link(scope, element, attrs) {
    console.log(scope.commentId);
  }

  return {
    link: link,
    restrict: 'A',
    scope: {
      commentId: '=commentId'
    }
  };
});
&#13;
&#13;
&#13;

或者您可以使用attrs参数将其从任何属性中删除

&#13;
&#13;
    var app = angular.module("myApp", []);
    app.directive('getPopoverContent', function() {

      function link(scope, element, attrs) {
        console.log(attrs.commentId);
      }

      return {
        link: link,
        }
      };
    });
&#13;
&#13;
&#13;