javascript - 在 Angular 中将 attrs 作为 $scope 变量传递

标签 javascript angularjs angularjs-directive

我有一个指令,我正在尝试获取 Attrs 并将它们传递给 $scope,但我不太确定该怎么做。更具体地说,我试图将我的模板中的属性设置为等于我的日期选择器标签中设置的名称。我尝试将它们设置为变量,但显然这不起作用。 非常感谢帮助和进一步澄清。谢谢!

HTML

<date-picker id="dateendPicker" name="date_end"></date-picker>

JS

App.directive('datePicker', function(){
  return {
  scope: {
          name : '@'
         },
  restrict: 'AE',
  replace: 'true',
  template: '<div class="date"><div class="input-group"><input type="text" class="form-control" id="{{this_name}}" name="{{this_name}}" ng-model="event.{{this_name}}" required/><span class="input-group-addon"><i class="fa fa-calendar"></i></span></div></div>',
  controller: ['$scope', function($scope){
        $scope.this_name = this_name;
  }],
  link: function(scope, element, attrs){
    var this_name = attrs.name;
  }
  }
});

最佳答案

由于您定义指令范围的方式:

  scope: {
      name : '@'
  }

名称已经是您范围内的一个变量。如果你没有在你的 Controller \链接函数上做任何特别的事情,你可以完全放弃它们,并在你的模板中用{{name}}引用它。请注意,如果您使用“@”创建范围绑定(bind),那么在您的 html 中,您应该将数据作为 Angular 表达式传递,这意味着:

name="{{date_end}}"

关于javascript - 在 Angular 中将 attrs 作为 $scope 变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460850/

相关文章:

javascript - $http 设置 header 错误 - angularjs

javascript - JavaScript 中的数字到浮点转换

javascript - AngularJS,在指令的独立范围内的嵌入内容中分配与更新范围时不一致

javascript - 如何取消html表格中先前的输入

javascript - 获取 "input"标签的长度、id 和名称

javascript - 如何随着页面宽度的增加自动水平滚动

javascript - ngTable 仅显示第一列

javascript - 单击按钮时显示/隐藏 div 元素

javascript - 无法读取未定义的属性 '#<Object>' 出现错误?

Angularjs 表单验证一组输入