javascript - 如何在 angularjs 中将对象字段作为指令参数传递?

标签 javascript angularjs

我想将对象数组传递给指令,并让它打印出我在使用该指令的地方确定的字段。

示例如下:

//directive
app.directive('MyDirective', function() {
  return {
    restrict: 'A',
    templateUrl: 'my-directive.html',
    scope: {
      items: '@',
      field: '@'
    }
  };
});

// my-directive.html template
<div ng-repeat="item in items">{{ item.field }}</div>

我的想法是我可以将它与任何像这样的对象一起使用:

// object arrays
var phones = [{id:1,number:'555-5555'}, {id:2,number:'555-6666'}];
var persons = [{id:1,name:'John'}, {id:2,name:'Jane'}];


// directive usage
<div my-directive items="phones" data-field="???number???"></div>
<div my-directive items="persons" data-field="???name???"></div>

结果应该打印出数字和名称。这在 Javascript 中可行吗?

最佳答案

您可以,只需用“=”绑定(bind)项目即可:

.directive('myDirective', function() {
  return {
    restrict: 'A',
    template: '<div ng-repeat="item in items">{{ item[field] }}</div>',
    scope: {
      items: '=',
      field: '@'
    }
  };
})

然后像这样使用它:

<div my-directive items="phones" field="number"></div>

查看此plunker .

关于javascript - 如何在 angularjs 中将对象字段作为指令参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29411764/

相关文章:

javascript - Nodejs 数组未按预期工作

javascript - 如何访问 meteor 客户端中的聚合集合数据?

javascript - JQuery UI 选项卡的 CSS 问题

javascript - 随机错误 "Unexpected token in JSON"

javascript - 将 HTML 添加到 JQuery Isotope additems/insertitems 第 2 部分

javascript - 如何组合和条件?

javascript - 定义 Angular Controller 和组件

javascript - Angular : Content of a disabled input

javascript - AngularJS 的全局 Ajax 错误处理程序

twitter-bootstrap - 可以一次在轮播中显示两张幻灯片吗?